8/7/2019 Review Summary for CS490
1/44
8/7/2019 Review Summary for CS490
2/44
8/7/2019 Review Summary for CS490
3/44
CS490 Database Management System
Section 1 2 3 4 5 6 7
What do you need in Application Development?
Feasibility
Analysis
Design
Development
Implementation
Mention four steps for database design:
Identify business rules.
Define tables and relationships.
Create input forms and reports.
Combine as applications for users.
Mention the components of a DBMS?
Database engine
The heart of the DBMS. It responsible for storing, retrieving, and
updating the data.
Data dictionary
Holds the definitions of all of the data tables.
Query ProcessorIt enables developers and users to store and retrieve data.
Report writer
Enables you to set up the report on the screen to specify how items will
be displayed or calculated.
Forms generator (input screens)
Helps the developer create input forms (enter data).
Application generator
A collection of forms and reports designed for a specific user task.
A good DBMS contains an application generator.
Prepared by: Dr. Saatchi, Seyed Mohsen 3/44
8/7/2019 Review Summary for CS490
4/44
Section 1 2 3 4 5 6 7
Communications
Security & other Utilities
Mention the Advantages of Database Approach:
Minimal data redundancy.
Data consistency.
Integration of data.
Sharing of data.
Enforcement of standards.
Ease of application development.
Uniform security, privacy and integrity.
Data independence.
Database Management Approach
Data is most important
Data defined first
Standard format
Access through DBMS
Queries, Reports, Forms
Application Programs
3GL Interface Data independence
Change data definition without changing code
Alter code without changing data
Move/split data without changing code
Mention some drawback problems
Uncontrolled Duplication
Inconsistent data
Inflexibility Limited data sharing
Poor enforcement of standards
Poor programmer productivity
Excessive program maintenance
8/7/2019 Review Summary for CS490
5/44
CS490 Database Management System
Section 1 2 3 4 5 6 7
Mention some of Database Types:
Hierarchical Database: To retrieve data, you must start at the top &
retrieve all nested data
Network Database
Relational Database
Object-Oriented DBMS
__________________A DBMS tool that assists the developer in creating a
complete application package. Common tools include menu and toolbar
generators and an integrated context-sensitive Help system.
Application generator
__________________ A collection of data stored in a standardized format,designed to be shared by multiple users. A collection of tables for a
particular business situation.
Database
__________________ the heart of the DBMS. It is responsible for storing,
retrieving, and updating the data.
Database Engine
_________________Software that defines a database, stores the data,supports a query language, produces reports, and creates data entry screens.
Database Management System (DBMS)
___________________holds the definitions of all of the data tables and
describes the type of data that is being stored.
Data Dictionary
___________________ separates the data from the programs, which often
enables the data definition to be changed without altering the program.
Data independence
Prepared by: Dr. Saatchi, Seyed Mohsen 5/44
8/7/2019 Review Summary for CS490
6/44
Section 1 2 3 4 5 6 7
___________________ a quick examination of the problems, goals, and
expected costs of a proposed system. The objective is to determine whether
the problem can reasonably be solved with a computer system.
Feasibility study
___________________ A DBMS tool that enables you to set up input forms
on the screen.
Forms Generator
___________________An older DBMS type that organizes data in
hierarchies that can be rapidly searched from top to bottom, e.g., Customer
OrderOrder Item.
Hierarchical Database
_________________An older DBMS type that expanded the hierarchical
database by supporting multiple connections between entities. A network
database is characterized by the requirement that all connections had to be
supported by an index.
Network Database
__________________A database system that holds objects, including
properties and methods. It supports links between objects, including
inheritance.Object-oriented (OO) database
__________________The use of a database for data analysis. The focus is
on retrieval of the data. The primary goals are to provide acceptable
response times, maintain security, and make it easy for users to find the data
they need.
Online Analytical Processing (OLAP)
8/7/2019 Review Summary for CS490
7/44
CS490 Database Management System
Section 1 2 3 4 5 6 7
____________________In object-oriented programming, the ability to store
objects (in a file or database) so that they can be retrieved at a later
Data.
Persistent Objects
_________________In SQL-99 a proposed method for storing methods
associated with objects. The module code would be stored and retrieved
automatically by the DBMS.
Persistent stored modules
__________________The most popular type of DBMS. All data is stored in
tables (sometimes called relations). Tables are logically connected by the
data they hold (e.g., through the key values). Relational databases should bedesigned through data normalization.
Relational Database
_________________A DBMS tool that enables you to set up reports on the
screen to specify how items will be displayed or calculated. Most of these
tasks are performed by dragging data onto the screen.
Report writer
_________________I inherits all of the columns from a base table. It
provides inheritance similar to that of the abstract data types; however, all
data is stored in separate columns.
Sub Title
Prepared by: Dr. Saatchi, Seyed Mohsen 7/44
8/7/2019 Review Summary for CS490
8/44
Section 1 2 3 4 5 6 7
Section 2: Data Design
Organizations are particularly interested in evaluating benefits in three key
areas:
Reduction of costs.
Increase in sales or revenue.
Competitive advantage.
Three common types of models used to design system:
Process models.
Class or object models. Event models.
Initial steps in database design:
Identify the exact goals of the system.
Talk with the users to identify the basic forms and reports.
Identify the data items to be stored.
Design the classes (tables) and relationships.
Identify any business constraints.
Verify the design matches the business rules.
For the initial design you need three basic pieces of information:
The data that needs to be collected.
The data type.
The amount of data involved.
What is an Entity?
Some item in the real world that you wish to track.
Entity i.e. described by attributes or properties.
What is a Class?
Entity listed with its properties.
8/7/2019 Review Summary for CS490
9/44
CS490 Database Management System
Section 1 2 3 4 5 6 7
What is a Method?
A function that is performed by the class.
What is a Class diagram?
Displays each class as box containing the list of properties for the class.
Association:
A relationship between two or more classes.
Relational database:
A collection of tables.
Table:A collection of columns (attributes) describing an entity.
Two important aspects to a relational database are:
1- All data must be stored in tables.
2- All tables must be carefully defined tp provide flexiplity and minimize
problems.
Data normalization:
The process of defining tables properly to provide flexibility, minimizes
redundancy, and ensure data integrity.
Note: The aim of Data normalization is to produce a list of nicely behaved tables.
Primary Key:
Is a column or set of columns that identifies a particular row?
Note: In most cases separate keys will be created to ensure they are unique.
Note: The relationship between the primary key and the rest of the data is
one to one.
State there types of relationships:
One-to-One
One-to-many
Many-to-many
Prepared by: Dr. Saatchi, Seyed Mohsen 9/44
8/7/2019 Review Summary for CS490
10/44
Section 1 2 3 4 5 6 7
Sample Association Rules (Multiplicity)
There is a problem with relation many to many, how can we solve it?
By make all many to many relationships be converted to a set of one to
many relationships by adding new entity.
Association Details: Aggregation
The Sale consists of a set of Items being sold.
Note: If order did matter, you would simply put the notation (ordered)
underneath the association.
Association Details: Composition
Is a stronger aggregate association that does arise more often?Aggregation where the components become the new object.
Association Details: Generalization
What meant by Inheritance?
Means that the object in the derived classes have all of the properties
from the higher classes, as well as those defined in their own class.
Class hierarchy:
Which shows how classes are derived from each other, and highlights whichproperties and functions are inherited?
What meant by Reflexive association:
A relationship from one class back to itself.
Data type:
Text Numbers Dates & Times
Event Examples
Business Even Data Event
User Event
8/7/2019 Review Summary for CS490
11/44
CS490 Database Management System
Section 1 2 3 4 5 6 7
Design Importance: Large Projects
Design is harder on large projects.
Communication with multiple users.Communication between IT workers.
Need to divide project into pieces for teams.
Finding data/components.
Staff turnover--retraining.
Need to monitor design process.
Evaluation.
Build systems that can be modified later.
Documentation.
Communication/underlying assumptions and model.
AggregationThe generic name for several SQL functions that operate across the selected rows. Commonexamples include SUM, COUNT, and AVERAGE.
AssociationConnections between classes or entities.
Association roleIn UML, the point where an association attaches to a class. It can be named, and generallyshows multiplicity, aggregation, or composition.
Binary large object(BLOB) A data domain for undefined, large chunks of data. A BLOB (or simple object) type canhold any type of data, but the programmer is often responsible for displaying, manipulating,and searching the data.
Class diagramA graph of classes connected through relationships. It is designed to show the static structureof the model. Similar to the entity relationship diagram.
Class hierarchy
A graph that highlights the inheritance relationships between classes.
Collaboration diagramA UML diagram to display interactions among objects. It does not show time as a separatedimension. It is used to model processes.
Section 1 2 3 4 5 6 7
Prepared by: Dr. Saatchi, Seyed Mohsen 11/44
8/7/2019 Review Summary for CS490
12/44
Data normalizationThe process of creating a well-behaved set of tables to efficiently store data, minimizeredundancy, and ensure data integrity. See first, second, and third normal form.
Data typeA type of data that can be held by a column. Each DBMS has predefined system domains
(integer, float, string, etc.). Some systems support user-defined domains that are namedcombinations of other data types.
Derived classA class that is created as an extension of another class. The programmer need only define thenew attributes and methods. All others are inherited from the higher level classes. Seeinheritance.Encapsulation
In object-oriented programming, the technique of defining attributes and methods within acommon class. For example, all features and capabilities of an Employee class would belocated together. Other code objects can use the properties and methods but only byreferencing the Employee object.
Composition associationA relationship in which an object is composed of a collection of other objects. For example, abicycle is built from components. In UML, it is indicated with a small filled diamond on theassociation end.
8/7/2019 Review Summary for CS490
13/44
CS490 Database Management System
Section 1 2 3 4 5 6 7
Section 3: Data Normalization
By designing database tables carefully it will:
Save space.
Minimize duplication.
Protect the data to ensure its consistency.
Provide faster transactions by sending less data.
Type of keys:
Primary key:
Every table (object) must have a primary key.
Uniquely identifies a row (One-to-One).
Composite keys:
Tables that will use more than one column as part of the
primary key.
We need it when the table contains a one-to-one or many-to-
many relationship with another table.
Foreign key:
It is a primary key but in other table. Customer ID is a primary key within the customer table. It is
known as a foreign key.
Surrogate keys:
Are often hidden.
What happens if two users attempt to generate a new key at the same time?
A good DBMS handles these problems automatically.
In Microsoft Access they use the auto number data type. But if
there is a new value to generate the process is not automatic.
In SQL Server: Identity data type.
In Oracle: SEQUENCES command (but require additional
programming)
Note:
A detailed class diagram can describe each table and include all properties.
Prepared by: Dr. Saatchi, Seyed Mohsen 13/44
8/7/2019 Review Summary for CS490
14/44
Section 1 2 3 4 5 6 7
Drawback:
Numbers are not related to any business data, so the application needs to
hide them and provide other look up mechanisms.
Note: There are problems with repeating data known as an insertion anomaly
and a deletion anomaly. These problems arise because you tried to add or
delete all the data in one table.
First Normal Form
When a table has no repeating groups, it is said to be in first normal form.
Remove repeating sections
Split into two tables Bring key from main and repeating section
There is a problem with the first normal form, which is:
Replication
Hidden dependency
Second Normal Form
Each non-key column must depend on the entire key.
Dependence (definition)If given a value for the key you always know the value of the property in
question, then that property is said to depend on the key.
If you change part of a key and the questionable property does not
change, then the table is not in 2NF.
There is a problem with the second normal form
Replication
Hidden dependency and the solution here is to split table.
Third Normal FormTo be in 3NF a table must already be in 2NF, and every non-key
column must depend on nothing but the key.
8/7/2019 Review Summary for CS490
15/44
CS490 Database Management System
Section 1 2 3 4 5 6 7
There is a problem in this example:
RentalForm2(TransID, RentDate, CustomerID, Phone, Name, Address, City,
State, ZipCode), so there are two solutions:
make CustomerID part of the key.
Split the table (if the tablr is already in 2NF this will be the only
choice that work).
Dependence (definition)
If given a value for the key you always know the value of the
property in question, then that property is said to depend on the
key.
If you change the key and the questionable property does not
change, then the table is not in 3NF.
3NF Rules/Procedure
Split out repeating sections
Be sure to include a key from the parent section in the new piece so the two
parts can be recombined.
Verify that the keys are correct
Is each row uniquely identified by the primary key?
Are one-to-many and many-to-many relationships correct?Check many for keys columns and one for non-key columns.
Note: Make sure that each non-key column depends on the whole key and nothing
but the key.
No hidden dependencies.
To check your tables, you essentially repeat the steps in normalization:
First: Make sure that you have pulled out every repeating group.
Second: Look at each non-key column and ask your self if it dependson the whole key and nothing but the key.
Third: Verify that the tables can be reconnected.
Fourth: Ask your self if each table represents a single object.
Finally: Enter sample data for each table and make sure that you are
not entering duplicate rows.
Prepared by: Dr. Saatchi, Seyed Mohsen 15/44
8/7/2019 Review Summary for CS490
16/44
Section 1 2 3 4 5 6 7
Boyce-Code Normal Form (BCNF)
There are an a problem which is Hidden dependency
Fourth Normal Form
Technically, if you keyed every column, any table would be in 3NF, which
does not solve any problems.
Note: In some cases, there are hidden relationships between key properties.
Domain-Key Normal Form (DKNF)
If a table is in DKNF, Fagin proved that it must also be in 4NF, 3NF and all
of the other normal forms.
The goal of DKNF:
To have each table represent one topic and for all the business rules to
be expressed in terms of domain constraints and key relationships.
Table will always be in 4NF.
Drawbacks No mechanical method to get to DKNF
No guarantee a table can be converted to DKNF
Rules Table => one topic
All business rules explicitly written as domain constraints and key
relationships.
No hidden relationships.
Data Rules and IntegrityNote: One of the goals of a database designer is to ensure that the data remains
accurate.
Type of data integrity: Type of constraint is to choose data from a set of predefined options.
Type of data integrity is a bit more complicated but crucial in a relational
database.
8/7/2019 Review Summary for CS490
17/44
CS490 Database Management System
Section 1 2 3 4 5 6 7
Referential integrity
Exists when a value for a foreign key can be entered only if the
corresponding value already exists in the originating table.
Auto numberA type of data domain where the DBMS automatically assigns a unique identification numberfor each new row of data. Useful for generating primary keys.
Boyce-Code normal form(BCNF) All dependencies must be explicitly shown through keys. There cannot be a hiddendependency between non-key and key columns.
Cascading deleteWhen tables are linked by data, if you delete a row in a higher level table, matching rows inother tables are deleted automatically. For example, if you delete Customer 1173, all ordersplaced by that customer are also deleted.
Composite keyA primary key that consists of more than one column. Indicates a many-to-many relationshipbetween the columns.
Data dictionaryHolds the definitions of all of the data tables and describes the type of data that is beingstored.
Data integrityKeeping accurate data, which means few errors and means that the data reflects the truestate of the business. A DBMS enables you to specify constraints or rules that help maintainintegrity, such as prices must always be greater than 0.
Data volumeThe estimated size of the database. Computed for each table by multiplying the estimatednumber of rows times the average data length of each row.
Default valuesValues that are displayed and entered automatically. Used to save time at data entry.
Deletion anomalyProblems that arise when you delete data from a table that is not in third normal form. Forexample, if all customer data is stored with each order, when you delete an order, you couldlose all associated customer data.
DependenceAn issue in data normalization. An attribute A depends on another attribute B if the values of A
change in response to changes in B. For example, a customer's name depends on theCustomer ID (each employee has a specific name). On the other hand, a customer's namedoes not depend on the Order ID. Customers do not change their names each time they place
an order.
Domain-key normal form(DKNF) The ultimate goal in designing a database. Each table represents one topic, and all ofthe business rules are expressed in terms of domain constraints and key relationships. That is,all of the business rules are explicitly described by the table rules.
Section 1 2 3 4 5 6 7
Prepared by: Dr. Saatchi, Seyed Mohsen 17/44
8/7/2019 Review Summary for CS490
18/44
First normal form(1NF) A table is in 1NF when there are no repeating groups within it. Each cell can containonly one value. For example, how may items can be placed in one Order table? The itemsrepeat, so they must be split into a separate table.
Foreign key
A column in one table that is a primary key in a second table. It does not need to be a key inthe first table. For example, in an Order table, Customer ID is a foreign key because it is aprimary key in the Customer table.
Fourth normal form(4NF) There cannot be hidden dependencies between key columns. A multi valued dependencyexists when a key determines two separate but independent attributes. Split the table to makethe two dependencies explicit.
Hidden dependencyA dependency specified by business rules that is not shown in the table structure. It generallyindicates that the table needs to be normalized further and is an issue with Boyce-Code orfourth normal form.
Insertion anomalyProblems that arise when you try to insert data into a table that is not in third normal form.For example, if you find yourself repeatedly entering the same data (e.g., a customer'saddress), the table probably needs to be redefined.
Master-detailA common one-to-many relationship often found on business forms, where the main form(e.g., Order) displays data for the master component, and a sub form (e.g., Order Items)displays detail data. Sometimes called a parent-child relationship.
MetadataData about data, or the description of the data tables and columns. Usually held in the datadictionary.
Referential integrityA data integrity constraint where data can be entered into a foreign key column only if thedata value already exists in the base table. For example, clerks should not be able to enter anOrder for Customer ID 1173 if Customer ID 1173 is not in the Customer table.
Repeating groupsGroups of data that repeat, such as items being ordered by a customer, multiple phonenumbers for a client, and tasks assigned to a worker.
Second normal form(2NF) A table is in 2NF if every non key column depends on the entire key (not just part of it).This issue arises only if there is a concatenated key (with multiple columns).
Third normal form(3NF) A table is in third normal form (3NF) if each non key column depends on the whole keyand nothing but the key.
8/7/2019 Review Summary for CS490
19/44
CS490 Database Management System
Section 1 2 3 4 5 6 7
Section 4: Introduction to Queries
Note: Query system is becoming more standardized, so that developers and
users can learn one language and use it on a variety of different system.
What meant by SQL?
Is the standard database query language.
Note: Most database system provides a query by example (QBE) method to
help beginners create SQL queries.
Three tasks of a query language:
define the database (DDL)
Change the data.
Retrieve data.
Note: The SELECT command is used to retrieve data.
SELECT command is to retrieve specified columns of data for rows that
meet some criteria.
Four Questions to Create a Query:
What output do you want to see?
What do you already know (or what constraints are given)?
What tables are involved?
How are the tables joined together?
Prepared by: Dr. Saatchi, Seyed Mohsen 19/44
8/7/2019 Review Summary for CS490
20/44
Section 1 2 3 4 5 6 7
Section 5: Advanced Queries
Note: One of the most powerful features of the SQL SELECT command.
Two key points will help you learn how to use sub queries:
1- SQL was designed to work with sets of data avoid thinking in terms
of individual rows
2- You can split nested queries into their separate parts and deal with
the parts individually.
Note: Some special SQL operators (IN, ALL, ANY, EXISTS)
Sub query with ANY and ALL
The ANY and ALL operators combine comparison of numbers with
subsets.
Word SOME can be used in place of the word ANY.
OUTER JOINS
The INNER JOIN command instructs the DBMS to match every entry in the
Sel-Animal table with a corresponding Animal ID in the Animal table.
Note: The OUTER JOIN describes what should happen when values in one
table do not exist in the second table.
In joining two tables, you have to consider two basic situations:
1- A value might exist in the left table with no matching value in the
right table.
2- A value might exist in the right table with no matching value in the
left table.
Correlated Sub query are Dangerous
Correlated Sub query a type of queries known to run for several days
without finishing.
8/7/2019 Review Summary for CS490
21/44
CS490 Database Management System
Section 1 2 3 4 5 6 7
UNION, INTERSECT, EXCEPT
UNION: to combines rows of data.
INTERSECT: Retrieves only the rows that are in both tables.EXCEPT: Retrieves rows that exist in only one table.
Multiple JOIN Columns
Sometimes need to JOIN tables on more than one column.
Reflexive Join
Need to connect a table to itself.
Inequality JoinWhere the comparison is made with inequality operators (less than, greater
than) instead of an equals sign.
Note: Queries with Every Need EXISTS
CREATE TABLE
Defines a new table
Constraints:
Are rules that are enforced by the database system?
SQL Data Manipulation Commands
INSERT
To insert one row of data at a time.
DELETE
To remove the older data
UPDATE
To update the record on the specific table.
Prepared by: Dr. Saatchi, Seyed Mohsen 21/44
8/7/2019 Review Summary for CS490
22/44
Section 1 2 3 4 5 6 7
ALL
A SQL SELECT clause often used with sub queries. Used in a WHERE
clause to match all of the items in a list. For example, Price > All (. . .)
means that the row matches only if Price is greater than the largest value in
the list.
ALTER TABLE
A SQL data definition command that changes the structure of a table. To
improve performance, some systems limit the changes to adding new
columns. In these situations, to make major changes, you have to create a
new table and copy the old data.
ANYA SQL SELECT clause often used with sub queries. Used in a WHERE
clause to match at least one of the items in a list. For example, Price > ANY
(. . .) means that the row matches as long as Price is greater than at least one
item in the list.
CASE
A SQL operator supported by some systems. It examines multiple conditions
(cases) and takesthe appropriate action when it finds a match.
ConcatenateA programming operation that appends one string on the end of a second
string. For example, Last Name & "," & First Name could yield "Smith,
John".
Constraint
In SQL, a constraint is a rule that is enforced on the data. For example, there
can be primary-key and foreign-key constraints that limit the data that can be
entered into the declared columns. Other business rules can form constraints,
such as Price 0.
Correlated sub query
A sub query that must be reevaluated for each row of the main query. Can be
extremely slow. Can often be avoided by creating a temporary table and
using that in the sub query instead.
8/7/2019 Review Summary for CS490
23/44
CS490 Database Management System
Section 1 2 3 4 5 6 7
CREATE DOMAIN
A SQL data definition command to create a new logical grouping of tables.
With some systems it is equivalent to creating a new database. This
command is not available in Oracle or SQL Server.
CREATE TABLE
A SQL data definition command to create a new table. The command is
often generated with a program.
CREATE VIEW
A SQL command to create a new view or saved query.
Data type
A type of data that can be held by a column. Each DBMS has predefined
system domains (integer, float, string, etc.). Some systems support user-
defined domains that are named combinations of other data types.
DELETE
A SQL data manipulation command that deletes rows of data. It is always
used with a WHERE clause to specify which rows should be deleted.
DROP
A SQL data definition command that completely removes a table from thedatabase- including the definition. Use it sparingly.
Equi-join
A SQL equality JOIN condition. Rows from two tables are joined if the
columns match exactly. Equi-join is the most common JOIN condition.
Rows that have no match in the other table are not displayed.
EXCEPT
A SQL operator that examines rows from two SELECT statements. It
returns all rows from one statement except those that would be returned bythe second statement. Sometimes implemented as a SUBTRACT command.
See UNION.
EXISTS
A SQL keyword used to determine if sub queries return any rows of data.
Prepared by: Dr. Saatchi, Seyed Mohsen 23/44
8/7/2019 Review Summary for CS490
24/44
Section 1 2 3 4 5 6 7
FULL JOIN
A JOIN that matches all rows from both tables if they match, plus all rows
from the left table that do not match, and all rows from the right table that do
not match. Rarely used and rarely available. See LEFT JOIN and RIGHT
JOIN.
IN
A SQL WHERE clause operator typically used with sub queries. It returns a
match if the selected item matches one of the items in the list. For example,
WHERE Item ID IN (115, 235, 536) returns a match for any of the items
specified. Typically, another SELECT statement is inserted in the
parentheses.
Inequality joinA SQL JOIN where the comparison is made with an inequality (greater than
or less than) instead of an equality operator. Useful for placing data into
categories based on ranges of data.
INSERT
Two SQL commands that insert data into a table. One version inserts a
single row at a time. The other variation copies selected data from one query
and appends it as new rows in a different table.
INTERSECT
A set operation on rows of data from two SELECT statements. Only rows
that are in both statements will be retrieved. See UNION.
LEFT JOIN
An OUTER JOIN that includes all of the rows from the "left" table, even if
there are nomatching rows in the "right" table. The missing values are
indicated by Nulls. See RIGHT JOIN and INNER JOIN. Left and right are
defined by the order the tables are listed; left is first.
OUTER JOIN
A generic term that represents a left join or a right join. It returns rows from
a table, even if there is no matching row in the other table.
8/7/2019 Review Summary for CS490
25/44
CS490 Database Management System
Section 1 2 3 4 5 6 7
Reflexive join
A situation that exists when a table is joined to itself through a second
column. For example, the table Employee (Employee ID. . . Manager ID)
could have a join from Manager ID to Employee ID.
Reflexive join
A situation that exists when a table is joined to itself through a second
column. For example, the table Employee (Employee ID. . . Manager ID)
could have a join from Manager ID to Employee ID.
RIGHT JOIN
An OUTER JOIN that includes all the rows from the "right" table, even if
there are no matching rows in the "left" table. The missing values areindicated by NULLS. See RIGHT JOIN and INNER JOIN. Left and right
are defined by the order the tables are listed; left is first.
Schema
A collection of tables that are grouped together for a common purpose.
Self-join
A table joined to itself. See reflexive join.
Sub query
Using a second query to retrieve additional data within the main query. For
example, to retrieve all sales where price was greater than the average, the
WHERE clause could use a sub query to compute the average price.
UNION
An SQL clause to combine rows from two SELECT statements. Both
queries must have thesame number of columns with the same domains.
Most systems also support INTERSECT and EXCEPT (or SUBTRACT)
operators.
UPDATE
A SQL data manipulation command that changes the values in specified
columns. A WHERE clause specifies which rows will be affected
Prepared by: Dr. Saatchi, Seyed Mohsen 25/44
8/7/2019 Review Summary for CS490
26/44
8/7/2019 Review Summary for CS490
27/44
CS490 Database Management System
Section 1 2 3 4 5 6 7
Buttons
1. Minimize
2. Maximize
3. Close
4. Scroll box (thumb)
5. Scroll bar
Windows Menus
Drop-down
Short Cut Keys
Mnemonic character
Pop-up (as needed)
Message Boxes
1. Title
2. Message
3. Simple buttons
4. Icons
5. Modal (required)
Interface / Accessibility
1. Multiple Input Methods2. Keyboard
3. Mouse
4. Voice
5. Multiple Outputs
6. Visual
7. Sound
8. Color
Prepared by: Dr. Saatchi, Seyed Mohsen 27/44
8/7/2019 Review Summary for CS490
28/44
Section 1 2 3 4 5 6 7
Types of Forms
1- Tabular Single Row
Sub-forms (one-to-many)
Switchboard
2- Tabular Form
Tabular
1. Single table.
2. Designer can control data entry sequence
3. May have Buttons for sorting.
Single Row (Columnar) Form
Data for only one row
Can set optimal layout.
8/7/2019 Review Summary for CS490
29/44
CS490 Database Management System
Section 1 2 3 4 5 6 7
Paper forms.
Can use color, graphics, and command buttons to make the form
Easier to use
Note the importance of the navigation buttons.
Find command
Can include Sub forms
Sub-Forms
One-to-many relationship
Switchboard Form:
Blank Form
Graphics/Picture/Background
Identify User
Choose Task.
Contains copyright and usage notes
Prepared by: Dr. Saatchi, Seyed Mohsen 29/44
8/7/2019 Review Summary for CS490
30/44
Section 1 2 3 4 5 6 7
Menu Design
Setup Choices
Data Input
Print Reports
DOS Utilities
Backups
Form Properties
Data
Integrity (Edit, Delete)
Format (color)
Other (Pop-up menus, Help menu) Controls on Forms (Complex)
Tab
Grid
Calendar
Gauge
Slider
Spin Box
Charts
Build a query that generates the data to be graphed.
Multiple Forms
Using data on other forms
8/7/2019 Review Summary for CS490
31/44
CS490 Database Management System
Section 1 2 3 4 5 6 7
Subtotals and sub forms
Multi-page v Separate forms
Same record set
Screen size
Side-by-side
Integrity in Forms
Avoid relying on forms
Use forms to make it easy to enter quality data
Controls
Selectivity
User assistance
Large Projects & Forms:
Sometimes its called International Attributes
1Language
2Character sets and punctuation marks
3Sorting
4Data formats
Date- Time- Metric v English- Currency symbol and format- Separators
(decimal . . .) - Phone numbers
1Postal codes
2National ID Numbers
Creating a Graphical Approach
1Get the hardware.
2Add an object column to your table definition.
2Design the screens.1. Be creative.
2. Get user input.
3. Make the users job easier.
4. Avoid using graphics just for show.
5. Double-click
6. Drag-and-drop
7. Programming
Prepared by: Dr. Saatchi, Seyed Mohsen 31/44
8/7/2019 Review Summary for CS490
32/44
Section 1 2 3 4 5 6 7
Report Why?
To collect data
Summarize data
Report strength
Easily handled
Combine both detailed & summary data
Report Design
Report usage/user needs.
Report layout choices.
Paper sizes.
Printer constraints.
How often is it generated?
Events that trigger report?
How large is the report?
Number of copies?
Colors?
Security controls
Output concerns
Report Graphs
Separate query.
Detail
1Locate in detail or group footer section.
2Avoid aggregation and groups in query.
3Include column that links to detail query in report.
Subtotals and totals
1Typically located in report footer or header.2Compare group totals
3Relies on Group By and aggregation.
4Be sure query groups match report groups
8/7/2019 Review Summary for CS490
33/44
CS490 Database Management System
Section 1 2 3 4 5 6 7
ApplicationApplication Features
Application organization
Menu
Toolbar
Help
Transactions
Improving forms
Customized reports
Distributing Applications
Bad poor & better design
1Bad design:
Enter data twice.
2Poor design:
Memorize data (ID) on one form to enter on second.
3Better design:
Automatically transfer data across forms.
Application Importance:
1- User interface
2- Ensure data integrity
3- Decision Support
4- Expert Systems & Intelligence
Application Organization:
Organized by user needs. Direct users to tasks
Drawbacks
Build forms and reports.
Use menu stubs for incomplete and future work
Prepared by: Dr. Saatchi, Seyed Mohsen 33/44
8/7/2019 Review Summary for CS490
34/44
Section 1 2 3 4 5 6 7
Help
On-line help replaces manuals Hypertext links to related topics defined as:
Sequential topics
1Descriptions
2Examples
Definitions / Glossary
Contents / overview
Index / keywords
Full-text search
Accessibility
A design goal to make the application usable by as many users as possible
Aesthetics
An application design goal, where layout, colors, and artwork are used to
improve the appearance
Bound control
A control on a form that is tied to a column in the database. When data is
entered or changed, the changes are automatically saved to the data table.
Check box
A square button that signifies a choice.
Clarity
The goal of making an application easier to use through elegant design and
organization that matches user tasks so that the purpose and use of the
application is clear to the user.
Combo box
A combination of a list box and a text box that is used to enter new data or to
select from a list of items.
8/7/2019 Review Summary for CS490
35/44
CS490 Database Management System
Section 1 2 3 4 5 6 7
Command button
A button on a form that is designed to be clicked. The designer writes the
code that is activated when the button is clicked.
Consistency
The transaction requirement that specifies all data must remain internally
consistent when changes are committed and can be validated by application
checks.
Context-sensitive menu
A menu that changes depending on the object selected by the user.
ControlsThe generic term for an item placed on a form. Typical controls consist of
text boxes, combo boxes, and labels.
Direct manipulation of objects
A graphical interface method that is designed to mimic real world actions.
Dock able toolbar
A toolbar that users can drag to any location on the application window..
Drag-and-drop
A graphical interface technique where actions are defined by holding down a
mouse key, dragging an icon, and dropping the icon on a new object.
Feedback
A design feature where the application provides information to the user as
tasks are accomplished or errors arise.
Focus
In a window environment, a form or control has focus when it is the one thatwill receive keystrokes. It is usually highlighted.
Group break
A report that splits data into groups. The split-point is called a break. Also
known as a control break.
Prepared by: Dr. Saatchi, Seyed Mohsen 35/44
8/7/2019 Review Summary for CS490
36/44
Section 1 2 3 4 5 6 7
Heads-down data entry
Touch typists concentrate on entering data without looking at the screen.
Forms for this task should minimize keystrokes and use audio cues.
Help system
A method for displaying, sequencing, and searching help documentation.
Developers need to write the Help files in a specific format and then use a
Help compiler to generate the final Help file.
Human factors design
An attempt to design computer systems that best accommodate human users.
Hypertext markup language(HTML) A display standard that is used to create documents to be shared on
the Internet. Several generators will create HTML documents from standard
word processor files.
List box
A control on a form that displays a list of choices. The list is always
displayed and takes up a fixed amount of space on the screen.
Menu
A set of application commands grouped togetherusually on a toolbar. It
provides an easy reference for commonly used commands and highlights the
structure of the application.
Modal form
A form that takes priority on the screen and forces the user to deal with it
before continuing. It should be avoided because it interrupts the user.
Option buttonA round button that is used to indicate a choice. By the design guide, option
buttons signify mutually exclusive choices, as opposed to check boxes.
Page footer
A report element that appears at the bottom of every page. Often used for
page numbers.
8/7/2019 Review Summary for CS490
37/44
8/7/2019 Review Summary for CS490
38/44
Section 1 2 3 4 5 6 7
Tabular form
An input form that displays data in columns and rows. It is used when there
are few columns of data or when the user needs to see multiple rows at the
same time.
Toolbar
A small object in applications that can hold buttons and text menus. Users
can execute commands with one or two mouse clicks. Used to hold
frequently used commands, and commands that are used across the entire
application, such as printing.
Tool tip
A small object in applications that can hold buttons and text menus. Userscan execute commands with one or two mouse clicks. Used to hold
frequently used commands, and commands that are used across the entire
application, such as printing.
Unicode
A standard method of storing and displaying a variety of character sets.
8/7/2019 Review Summary for CS490
39/44
CS490 Database Management System
Section 1 2 3 4 5 6 7
Section 7: Triggers & Cursors & Functions
Procedural LanguagesA traditional programming language, where you specify the sequence of a
set of commands.
SQL commands
Rae not procedural language because you tell the DBMS only what you
want done, not how to do it.
Create code
1- Within the query system
2- In forms and reports
3- Hosted in external programs
Looking Up Data
Obtaining data from a single row is straightforward with the SELECT INFO.
- It gets to the variable.
- It has one row.
Data triggers
Code that is executed when some data element is modified.Procedures that are executed when some event arises within the database.
Event:Any process happens.
Note: The common events are Update, Insert, and Delete.
Note: The main data trigger on the row and columns each have two
attributes: BEFORE and AFTER.
Statement versus Row TriggersThe SQL defines two levels of triggers:
1- Triggers may be assigned to the overall table.
2- Triggers may be assigned to fire for each row of data being modified.
Prepared by: Dr. Saatchi, Seyed Mohsen 39/44
8/7/2019 Review Summary for CS490
40/44
Section 1 2 3 4 5 6 7
Cascading Triggers
Arise when a change that fire a trigger on one table cause a change in the
second table, that triggers a change in third table, and so on.
Transactions
A set of changes that must all be made together.
The computer needs to be told which changes must be grouped into a
transaction.
1. Turn on transaction processing.
2. Signify a transaction start.3. Signify the end.
Success: save all changes
Failure: cancel all changes
Must be set in module code
Commit
Rollback
SAVEPOINT
Divides transaction procedures into multiple pieces.
Concurrent Access
When two people try to change the same data at the same time.
In this case Final data will be wrong
Pessimistic Locks: Serialization
Serialization
Process forces transactions to run separately so that a second process cannot
even read the data being modified by the first process.
Note: One answer to concurrent access is to prevent it.
When a transaction needs to alter data, it places a SERIALIZABLE lock on
the data used, so no other transactions can even read the data until the first
transaction is completed.
8/7/2019 Review Summary for CS490
41/44
CS490 Database Management System
Section 1 2 3 4 5 6 7
Deadlock
Arises when two (or more) processes have placed locks on data and are
waiting for the others data.
Many solutions:
- Random wait time
- Global lock manager
- Two-phase commit messages
Optimistic Locks
Begins by assuming that collisions are rare and unlikely to arise.
Improved performance, fewer resources allow all code to read any data (nolocks).
When code tries to write a new value
- Check to see if the existing value is different from the one you were
given earlier
- If it is different, someone changed the database before you finished,
so it is a collision--raise an error
- Reread the value and try again
Atomicity: all changes succeed or fail together.
Consistency: all data remain internally consistent (when committed) and can
be validated by application checks.
Isolation: The system gives each transaction the perception that it is running
in isolation. There are no concurrent access issues.
Durability: When a transaction is committed, all changes are permanently
saved even if there is a hardware or system failure.
Logically, generated keys could be created through two primary methods:
1- By automatic method when a new row is added to a table.
2- By separate key generation routine.
Prepared by: Dr. Saatchi, Seyed Mohsen 41/44
8/7/2019 Review Summary for CS490
42/44
Section 1 2 3 4 5 6 7
Database Cursors
Defines a SELECT statement and then point to one row at a time.
A Loop statement enables you to move the cursor to the next row and
repeat your code to examine each row returned by query.
Purpose
Track through table or query one row at a time.
Data cursor is a pointer to active row.
Why?
Performance.
SQL cannot do everything. Complex calculations.
Compare multiple rows.
Atomicity
The transaction element that specifies that all changes in a transaction must
succeed or fail together.
Cascading triggers
Multiple events that arise when a change that fires a trigger on one tablecauses a change in a second table, that triggers a change in a third table and
so on.
Concurrent access
Performing two (or more) operations on the same data at the same time. The
DBMS must sequence the operations so that some of the changes are not
lost.
consistency, application
The goal of making an application easier to use by using the same features,
colors, and commands throughout. Modern applications also strive for
consistency with a common design guide.
8/7/2019 Review Summary for CS490
43/44
CS490 Database Management System
Section 1 2 3 4 5 6 7
Database cursor
A variable created within a programming language that defines a SELECT
statement and points to one row of data at a time. Data on that row can be
retrieved or edited using the programming language.
Deadlock
A situation that exists when two (or more) processes each has a lock on a
piece of data that the other one needs.
Durability
The transaction element that specifies that when a transaction is committed,
all changes are permanently saved even if there is a hardware or system
failure.
Isolation
The transaction requirement that says the system must give each transaction
the perception that it is running in isolation with no concurrent access issues.
Isolation level
Used to assign locking properties in transactions. At a minimum, it is used to
specify optimistic or pessimistic locks. Some systems support intermediate
levels.
Optimistic lock
A transaction lock that does not block other processes. If the data is changed
between read and write steps, the system generates an error that must be
handled by code.
Persistent stored modules
(PSM) In SQL-99 a proposed method for storing methods associated with
objects. The module code would be stored and retrieved automatically by the
DBMS.
Pessimistic lock
A complete isolation level that blocks other processes from reading a locked
piece of data until the transaction is complete. Program code will receive an
error message if the data element is locked.
Prepared by: Dr. Saatchi, Seyed Mohsen 43/44
8/7/2019 Review Summary for CS490
44/44
Section 1 2 3 4 5 6 7
Procedural language
A traditional programming language that is based on following procedures
and is typically executed one statement at a time. Compared to SQL, which
operates on sets of data with one command.
Serialization
A transaction requirement that specifies that each transaction is treated
completely separately and run as if there were no other transactions.
Transaction
In a database application a transaction is a set of changes that must all be
made together. Transactions must be identified to the DBMS and then
committed or rolled back (if there is an error). For example, a transfer of
money from one bank account to another requires two changes to thedatabaseboth must succeed or fail together.
Trigger
An event that causes a procedure to be executed. For example, clicking a
button can be a trigger, as can a change in a data value.
Top Related