databaseR - File Storage

Download Report

Transcript databaseR - File Storage

Relational Databases
What Is A Relational Database?
Created by Dr. E.F. Codd
A database is a collection of tables
and other “objects” that are related
and collectively describe an entity.
Other objects are forms, queries,
reports, modules.
Advantages Of Database
Store data only once - lower cost
Reduces errors
Eliminate data redundancy
Avoid duplicate processing
Simplify maintenance
Centralize data management & security
Advantages Of Database
Offer greater flexibility
Simplify report modifications and
updates
Provide ad-hoc query capabilities
Cross functional data analysis
Permits multiple use and
simultaneous
data analysis
Disadvantages Of Database Systems
Increased costs (usually offset by
savings)
Hardware requirements
The software itself
Database administrator
Disadvantages Of Database
Systems
Centralized management and security
control
System operation becomes critical
Errors in data entry effects all users
Potential disputes over data
ownership
Tables
Fundamental storage structures for data
Tables are sometimes called files
Looks like a spreadsheet
Consist of rows (TUPLES) which are
the equivalent of a record and columns
(ATTRIBUTES) which are the
equivalent of a field
Table Terms
Primary key - An attribute (column) that
uniquely identifies a given row so the system
can distinguish each record of a table
PRIMARY KEYS CAN’T BE NULL!
Foreign key - An attribute (column) in one
table that must match the primary key in
another table. Used to join tables together.
Composite (concatenated) key - A primary
key that consists of more than a single column.
Table Rules
No duplicate tables
No duplicate rows or columns in table
Sequence of rows/columns doesn’t
matter
Each table must have a primary key
The primary key CANNOT be null
Each table is about ONE concept
Joining Tables
Customer ID
Company Name
Contact
Invoice ID Invoice Date Order Date
Invoice ID
Inventory ID
Inventory ID
Quantity
Item ID Caffeinated
Phone Number
Customer ID
Employee ID Customer PO
Unit Price Discount
Price
On Hand
Credit Limit
One-to-One Relationships
Only one matching record
Uses primary key for both tables
Use to limit access to information
11
One-to-One Relationships (cont.)
12
One-to-Many Relationships
Most common type of relationship
Related between primary and foreign keys
Can have many related records
Referential integrity prevents orphaned records
13
One-to-Many Relationships (cont.)
14
Many-to-Many Relationships
One order, many products
One product, many orders
Not directly supported between tables
Use an Intersection table to relate
15
Many-to-Many Relationships (cont.)
16
Relational Database Design
Relationships and Referential Integrity
Create relationships
between the tables
Set referential
integrity
17
Queries
Allows you to ask questions about your data
examples:
How many employees earn more than $40,000?
Which customer invoices are more than 60 days
old ?
 SQL (structured query language pronounced
seequel) is the underlying “how” of making
queries of databases
Queries
Access does Queries by using QBE
or SQL. QBE makes it easy to pick
up simple queries, but becoming
accomplished enough to write more
complex queries takes much time
and effort.
Queries
Queries are where the real POWER of a
database lies
Relationships between tables must be
properly established in order for queries
to work correctly in QBE
Forms
Shows data from a table in a format that
is more attractive and easier to
understand
Access forms can be made to resemble
paper forms that users are already
familiar with
Forms are commonly used to input,
display, or change data
Reports
Hard copy of output of information contained
in the database
We often create reports that are the result of
queries we made
Access allows you to create board room
quality reports
Modules
Visual Basic for Application code that
can executed at the click of a button or
when a form is opened. They are useful
in developing more sophisticated internal
controls into an Access based
information system.
REVIEW TABLE RULES
No duplicate tables
No duplicate rows or columns in table
Sequence of rows/columns doesn’t
matter
Each table must have a primary key
The primary key CANNOT be null
Each table is about ONE concept
DATABASE
NORMALIZATION
Database normalization is
the process of ensuring
that each table contains
data about only ONE
concept.
REPEATING GROUPS AND
NORMALIZATION TO FIRST
NORMAL FORM (1NF)
SALES-INFORMATION
Invoice#
Date
Customer#
Salesperson
Region
Item#
Description
Price
Quantity
1001
1002
1003
7/1/92
7/1/92
7/1/92
456
329
897
John
Mary
Al
West
East
West
121
348
540
Widget
Gear
Bolt
$2.25
$3.70
$0.40
45
10
5
INVOICE-ITEMS (1NF)
Invoice#
Item#
INVOICES
(2NF)
Invoice#
Date
Customer#
Salesperson
Region
Description
Price
Quantity
WHAT IS THE
PROBLEM WITH
DESCRIPTION/PRICE?
Insert anomalies
Delete anomalies
Update anomalies
DECOMPOSITION OF A
FIRST-NORMAL-FORM
(1NF) TABLE
INVOICE-ITEMS (1NF)
Invoice#
Item#
Description
INVOICE-ITEMS-QTY (2NF)
Invoice#
Item#
Price
Quantity
ITEMS (2NF)
Item#
Description
Price
Quantity
You can only have a 2nd Normal Form problem if there is a composite primary Key
DATABASE
NORMALIZATION
Functional dependency is key in
understanding the process of
normalization. Functional
dependency means that if there is
only one possible value of Y for
every value of X, then Y is
functionally dependent on X.
DATABASE
NORMALIZATION
Think of an invoice table. Two fields
would be invoice # and date. Which
field is functionally dependent on the
other?
INVOICE #
DATE
Date is functionally dependent on invoice number.
Functional Dependency is “good”. With
functional dependency the primary key
(Attribute A) determines the value of all the
other non-key attributes (Attributes
B,C,D,etc.)
Transitive dependency is “bad”. Transitive
dependency exists if the primary key
(Attribute A) determines non-key Attribute B,
and Attribute B determines non-key Attribute
C.
DECOMPOSITION OF A
SECOND-NORMAL-FORM
(2NF) TABLE
SALES (2NF)
Invoice#
Date
Customer#
Salesperson
Region
This is a transitive
dependency which must
be eliminated for 3NF
INVOICES (3NF)
Invoice#
Date
SALESPERSON-REGION (3NF)
Customer#
Salesperson
Salesperson
Region
SUMMARY OF 3NF
RELATIONS FOR SALES
DATABASE
SALESPERSON-REGION (3NF)
INVOICES (3NF)
Invoice#
Date
Customer#
Salesperson
Salesperson
Region
1001
1002
1003
7/1/92
7/1/92
7/1/92
456
329
897
John
Mary
Al
John
Mary
Al
West
East
West
INVOICE-ITEMS-QTY (3NF)
ITEMS (3NF)
Invoice#
Item#
Quantity
Item#
Description
Price
1001
1002
1003
121
348
540
45
10
5
121
348
540
Widget
Gear
Bolt
$2.25
$3.70
$0.40