dependency preserving
Download
Report
Transcript dependency preserving
Normalization
and
Data Mining
R&G Chapter 19
Lecture 27
Science is the knowledge of
consequences, and dependence
of one fact upon another.
Thomas Hobbes
(1588-1679)
Administrivia
• Homework Due a week from Today
– RubyOnRails help session Wed, 5-7pm, 310 Soda
– (Thanks to Darren Lo & HKN)
• Final exam 3 weeks from tomorrow
Review: Functional Dependencies
–
–
–
–
Properties of the real world
Decide when to decompose relations
Help us find keys
Help us evaluate Design Tradeoffs
• Want to reduce redundancy, avoid anomalies
• Want reasonable efficiency
• Must avoid lossy decompositions
– F+: closure, all dependencies that can be inferred from a set F
– A+: attribute closure, all attributes functionally determined by
the set of attributes A
– G: minimal cover, smallest set of FDs such that G+ == F+
Review: Normal Forms
• A property of a single relation
• Tells us something about redundancy in reln
• Reln R with FDs F is in BCNF if, for all X A in F+
A X (called a trivial FD), or
X is a superkey for R.
• Reln R with FDs F is in 3NF if, for all X A in F+
A X (called a trivial FD), or
X is a superkey of R, or
A is part of some candidate key (not superkey!) for R.
(sometimes stated as “A is prime”)
Review: Decomposition
• If reln violates normal form, decompose
– but must have lossless decomposition
• Lossless decomposition:
– decomposition of R into X and Y is lossless if and only if
X Y is a key for either X or Y
– If W Z holds over R and (W Z) is empty, then
decomposition of R into R-Z and WZ is loss-less.
• Algorithm:
– For each FD W Z in R that violates normal form,
decompose R into R-Z and WZ. Repeat as needed.
– Order not important, but can produce very different results
Review: Dependency Preservation
– decompose too much, and it might be necessary to join
tables to check FDs
– decomposition of R into X and Y is dependency preserving if
(FX FY ) + = F +
• FX is all FDs involving only attributes in X
• FY is all FDs involving only attributes in Y
– Not always obvious
• ABC, A B, B C, C A, decomposed into AB and BC.
• Is this dependency preserving? Is C A preserved?
– note: F + contains F {A C, B A, C B}, so…
• FAB contains A B and B A; FBC contains B C and C B
• So, (FAB FBC)+ contains C A
Exercise
Consider a database about Students:
(StudentID, SS#, Name, Street Addr, City, State, Zip)
abbreviated as: (D,S,N,R,C,T,Z), where D and S are keys
D DSNRCTZ, S DSNRCTZ, RCT Z, Z CT
•
Is DSNRCTZ in BCNF? If not, decompose it until it is.
Is the final decomposion dependency-preserving?
•
Is DSNRCTZ in 3NF, If not, decompose it until it is. Is
the final decomposion dependency-preserving?
Exercise
Consider a database about Students:
(StudentID, SS#, Name, Street Addr, City, State, Zip)
abbreviated as: (D,S,N,R,C,T,Z), where D and S are keys
D DSNRCTZ, S DSNRCTZ, RCT Z, Z CT
•
Is DSNRCTZ in BCNF? If not, decompose it until it is.
Is the final decomposion dependency-preserving?
– no, RCT Z, RCT not key, decom to: DSNRCT &
RCTZ.
– still no, Z CT, Z not key, decom to: DSNRCT, ZCT
& RZ, which is BCNF
– but, join required to test RCT Z
Exercise
Consider a database about Students:
(StudentID, SS#, Name, Street Addr, City, State, Zip)
abbreviated as: (D,S,N,R,C,T,Z), where D and S are keys
D DSNRCTZ, S DSNRCTZ, RCT Z, Z CT
•
Is DSNRCTZ in 3NF, If not, decompose it until it is. Is
the final decomposion dependency-preserving?
– no, RCT Z, RCT not key, Z not part of key decom
to: DSNRCT & RCTZ.
– yes, 3NF, Z CT, CT part of key, (since RCT Z)
– is D Z preserved? Yes, transitively, since D
RCT (1st relation), and RCT Z (2nd relation)
Minimal Cover for a Set of FDs
• G: minimal cover, smallest set of FDs such that G+ == F+
– Closure of F = closure of G.
– Right hand side of each FD in G is a single attribute.
– If we modify G by deleting an FD or by deleting attributes from an FD
in G, the closure changes.
• Every FD in G is needed, and ``as small as possible’’ in order to
get the same closure as F.
• e.g., F+ = {A B, B C, C A, B A, C B, A C}
– several minimal covers: {A B, B A, C B, B C} (AB + BC)
– or {A C, C A, B C, C B} (AC + BC)
– or {A B, B A, C A, A C} (AB + AC)
• e.g., A B, ABCD E, EF GH, ACDF EG minimal cover:
– A B, ACD E, EF G and EF H
BCNF and Dependency Preservation
• In general, there may not be a dependency preserving
decomposition into BCNF.
• But, you can always find dependency-preserving decomposition
into 3NF
– Top down:
• Decompose until it is in 3NF
• Compute minimal cover for FDs
• If minimal cover contains a FD X Y is not preserved, add reln XY
– Bottom up:
• Compute minimal cover
• For each FD X Y in minimal cover, create reln XY
– Why does this work? Minimal cover doesn’t include redundant
transitive dependencies, which don’t need to be preserved
Summary of FDs and Normalization
• FDs are properties of the real world
– FDs tell us if a relation is in a Normal Form
• Normal forms tell us if there is any redundancy
– but zero redundancy may mean inefficiency
• BCNF: each field contains information that cannot be inferred
using only FDs.
– ensuring BCNF is a good heuristic.
• Not in BCNF? Try decomposing into BCNF relations.
– Must consider whether all FDs are preserved!
• Lossless-join, dependency preserving decomposition into BCNF
impossible? Consider 3NF.
• Decompositions should be carried out while keeping performance
requirements in mind.
• Note: even more restrictive Normal Forms exist (we don’t cover
them in this course, but some are in the book.)
New Topic: Data Mining
Definition
Data mining is the exploration and analysis of
large quantities of data in order to discover
valid, novel, potentially useful, and ultimately
understandable patterns in data.
Example pattern (Census Bureau Data):
If (relationship = husband), then (gender = male). 99.6%
Definition (Cont.)
Data mining is the exploration and analysis of large
quantities of data in order to discover valid, novel,
potentially useful, and ultimately understandable
patterns in data.
Valid: The patterns hold in general.
Novel: We did not know the pattern beforehand.
Useful: We can devise actions from the patterns.
Understandable: We can interpret and comprehend the
patterns.
Why Use Data Mining?
Human analysis skills are inadequate:
– Volume and dimensionality of the data
– High data growth rate
Availability of:
– Data
– Storage
– Computational power
– Off-the-shelf software
– Expertise
An Abundance of Data
•
•
•
•
•
•
•
•
•
•
•
Supermarket scanners, POS data
Preferred customer cards
Credit card transactions
Direct mail response
Call center records
ATM machines
Demographic data
Sensor networks
Cameras
Web server logs
Customer web site trails
More Computational Power
• Moore’s Law:
In 1965, Intel Corporation cofounder Gordon Moore
predicted that the density of transistors in an integrated
circuit would double every year.
(Later changed to reflect 18 months progress.)
• Experts on ants estimate that there are 1016 to 1017 ants on
earth. In the year 1997, we produced one transistor per ant.
Much Commercial Support
• Many data mining tools
– http://www.kdnuggets.com/software
– http://www.purpleinsight.com
• Database systems with data mining support
• Visualization tools
• Data mining process support
• Consultants
Why Use Data Mining Today?
Competitive pressure!
“The secret of success is to know something that nobody else
knows.”
Aristotle Onassis
•
•
•
•
•
Competition on service, not only on price (Banks, phone
companies, hotel chains, rental car companies)
Personalization, CRM
The real-time enterprise
“Systemic listening”
Security, homeland defense
The Knowledge Discovery Process
Steps:
Identify business problem
Data mining
Action
Evaluation and measurement
Deployment and integration into businesses
processes
Data Mining Step in Detail
2.1 Data preprocessing
– Data selection: Identify target datasets and
relevant fields
– Data cleaning
•
•
•
•
Remove noise and outliers
Data transformation
Create common units
Generate new fields
2.2 Data mining model construction
2.3 Model evaluation
Models can describe existing data
Make predictions about new data
Preprocessing and Mining
Knowledge
Patterns
Target
Data
Preprocessed
Data
Interpretation
Model
Construction
Original Data
Preprocessing
Data
Integration
and Selection
Examples
• Insurance: which claims are likely to be fraud?
• Banks: which customers are likely to repay
loans?
• Stores: which products do people buy
together?
Data Mining Techniques
• Supervised learning
– Classification and regression, describe correlative factors,
predict values for new data
• Unsupervised learning
– Clustering
– Dependency modeling
• Associations, summarization, causality
– Outlier and deviation detection
– Trend analysis and change detection
• Visual Data Mining
– Present the information in a visual form, offload the analysis
onto the human perceptual system
Supervised learning
• Need training data set with known outcome
– e.g. here is a set of loans that were not repaid, and other
loans that were repaid
• Model is generated from the training set, tested on a
separate test data set to determine accuracy
• Model can predict outcomes on new data,
– can also explain predictive factors
• Examples include Decision Trees, Regression Trees,
Naïve Baysian networks
Unsupervised Learning
• Give data to the algorithm, it does the rest
• Output might include clustered data,
association rules, etc.
E.g. Agglomerative Clustering
Algorithm:
• Put each item in its own cluster (all singletons)
• Find all pairwise distances between clusters
• Merge the two closest clusters
• Repeat until everything is in one cluster
Observations:
• Results in a hierarchical clustering
• Yields a clustering for each possible number of clusters
• Greedy clustering: Result is not “optimal” for any cluster size
Agglomerative Clustering Example
Density-Based Clustering
•
•
•
A cluster is defined as a connected dense component.
Density is defined in terms of number of neighbors of a
point.
We can find clusters of arbitrary shape
Demo
Conclusions
• Data mining very useful for understanding
large data sets
• Several approaches
– Supervised
– Unsupervised
• Can describe patterns, make predictions
• Many commercial packages
• Many free algorithms