HERE - Temple Fox MIS

Download Report

Transcript HERE - Temple Fox MIS

Database
Week 6
Mid-term Review
Fox MIS
Spring 2011
Format of Mid-term Exam
• TIME: 11:00 am -12:00
• LOCATION: SP114
• FORMAT:
– Multiple Choices (10-15 questions)
– Q&A (4-6 questions)
– ERD (1 question)
• Content ratio (approximately):
BI 10-15%, ERD 30-35%, SQL 50-60%
Business Intelligence
•
•
•
•
•
•
•
What is Business Intelligence (BI)?
What’s the main role of BI in business
List some technologies supporting BI.
List BI skill and knowledge clusters.
What is BI maturity?
What are the four stages of the BI maturity model?
Explain why BI is an architecture and a collection of i
ntegrated operational as well as decision-support ap
plications and databases that provide the business c
ommunity easy access to business data.
Mental Map of BI
Database Design
• Database Models, advantages & disadvantages
• The uniqueness of relational model
• The role of DBMS, DBMS functions
ERD
•
•
•
•
•
Entities
Attribute
Primary key, foreign key
Relationships (1:M, M:1, M:N)
Referential integrity
Drawing ERD
• Steps:
– Identify entities
– Insert primary keys
– Insert attributes (independence)
– Identify relationships
– Add bridge entity to simplify M:N relationships
– Add foreign keys and build relationships
Tips: for transactional database, it’s common to
connect all “physical” entities to the core transa
ctional entity/table.
Frequent Made Mistakes
• Add wrong attributes
• Add record as attributes (e.g. laptop or product n
ame)
• Forgot to identity relationships
• Couldn’t identify M:N relationships
• Wrong relationships (e.g. customer<->store)
• Forgot referential integrity
• Loops
First Invoice
Second Invoice
3212
Jason Mraz
72 Spring Street
New York, NY 10012
3930722
141414
The Big Short
Databases R Amazing
TOTAL
Tax
Grand Total
234567
6/10/2008
Economics
IS
20.00
100.00
1
2
20.00
200.00
220.00
13.20
233.20
Third Invoice
3213
6/4/2008
6/12/2008
455550
141414
To the End of the Land
Databases R Amazing
TOTAL
Tax
Grand Total
Novel
IS
Sunny California
610 W. Ash St
San Diego , CA 92101
20.00
100.00
5
1
100.00
100.00
200.00
12.00
212.00
SQL
• Database Manipulation Language (DML)
SHOW TABLES, DESCRIBE
SELECT, *, WHERE, ORDER BY
AND & OR
COUNT, DISTINCT
DELETE, INSERT, UPDATE
JOIN, ALIAS
• Database Definition Language (DDL)
CREATE TABLE/DATABASE
DROP TABLE/DATABASE
ALTER, PRIMARY KEY, FOREIGN KEY
SELECT, COUNT, DISTINCT, WHERE
•
Table: customer_list, Databse: Sakila
– Where does Judy Gray live?
• SELECT *
• FROM CUSTOMER_LIST
• WHERE NAME= 'JUDY GRAY‘ (or NAME LIKE ‘JUDY GRAY’)
– How many countries do our customers live in?
• SELECT COUNT(DISTINCT COUNTRY)
• FROM CUSTOMER_LIST
– How many customers live in Egypt?
• SELECT COUNT(ID)
• FROM CUSTOMER_LIST
• WHERE COUNTRY = 'EGYPT'
– What cities in Egypt do our customers live in?
• SELECT DISTINCT CITY
• FROM CUSTOMER_LIST
• WHERE COUNTRY = 'EGYPT'
– How many customers live outside of the United States?
• SELECT COUNT(ID)
• FROM CUSTOMER_LIST
• WHERE COUNTRY <> 'UNITED STATES'
LIKE, AND, ORDER BY
•
Table: film
– How many films are less than or equal to 90 minutes in their lengths?
• SELECT COUNT(FILM_ID)
• FROM FILM
• WHERE LENGTH <= 90
– How many films are about astronauts?
• SELECT COUNT(FILM_ID)
• FROM FILM
• WHERE DESCRIPTION LIKE '%ASTRONAUT%'
– List of the movie titles which are about astronauts and their length are
less than 90 minutes
• SELECT TITLE
• FROM FILM
• WHERE (DESCRIPTION LIKE '%ASTRONAUT%') AND (LENGTH < 90)
– List of the movie titles and their length in descending order according to
the length
• SELECT TITLE, LENGTH
• FROM FILM
• ORDER BY LENGTH DESC
INSERT, UPDATE, DELETE
•
•
Table: retail_sales_feb
Put yourself as the customer
– You bought it from Sales_rep whose name is Smith at Feb.11.2011
– Your order_no is 34567 and cust_no is 3456
DESCRIBE RETAIL_SALES_TAB (you might need this statement to see data type for each
field)
INSERT INTO RETAIL_SALES_FEB
VALUES ('2011-2-11', 34567, 3456, ‘Yang Yang', ‘Smith', 'CB03', 'Bike', 'Sport', 1, '$250',
'$250')
•
•
•
Put person next to you as the customer
– You don’t know anything about that person except the name and intend to fill the rest of the
fields later on
– Note: you need to figure out what the key is and make it up
DESCRIBE RETAIL_SALES_TAB (Primary key should be “NO” in Null field)
INSERT INTO RETAIL_SALES_FEB (ORDER_NO, CUSTOMER)
VALUES (45678, 'Joe Smith')
You found out that the person you bought from was not Min but Smith. Correct the information
UPDATE RETAIL_SALES_FEB
SET SALES_REP = 'Smith'
WHERE ORDER_NO = 34567
You want to cancel your order and make it as if it never happened
DELETE FROM RETAIL_SAELS_FEB
WHERE ORDER_NO = 34567
Join
• Output customer names, payment amount, CSR name, a
nd rental date from database sakila:
• SELECT rental.rental_date, customer.first_name, customer.last_na
me, payment.amount, staff_list.name
FROM rental, customer, payment, staff_list
WHERE rental.rental_id=payment.rental_id
AND rental.customer_id=customer.customer_id
AND rental.staff_id=staff_list.ID
• You can also use table1 INNER JOIN table2 ON conditions
• In above query, how many tables are joined? Why and w
hen are these tables joined? How are these table joined?
Alias
• Just give another name for the output values
– SELECT amount FROM payment AS p
– SELECT amount, amount+1 FROM payment
– SELECT amount AS "original_amount", amount+1 AS "new_am
ount" FROM payment
CREATE DB and TABLE
•
Create a database:
CREATE DATABASE database_name
Example: CREATE DATABASE my_db
•
Create a table in a database:
CREATE TABLE table_name
(
column_name1 data_type,
column_name2 data_type,
column_name3 data_type,
....
)
Example:
CREATE TABLE Persons
(
P_Id int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
SQL Constraints
• Constraints are used to limit the type of data that
can go into a table.
• Constraints can be specified when a table is created
(with the CREATE TABLE statement) or after the
table is created (with the ALTER TABLE statement).
– NOT NULL
– UNIQUE
– PRIMARY KEY
– FOREIGN KEY
– CHECK
– DEFAULT
CHECK
• The CHECK constraint specifies that the column
"P_Id" must only include integers greater than 0.
• CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (P_Id>0)
)
DEFAULT
• The DEFAULT constraint is used to insert a
default value into a column.
• CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255) DEFAULT 'Sandnes'
)
PRIMARY KEY
•
The PRIMARY KEY constraint uniquely identifies each record in a database table.
– Primary keys must contain unique values.
– A primary key column cannot contain NULL values.
– Each table can have only ONE primary key.
•
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
)
•
ALTER TABLE Persons
ADD PRIMARY KEY (P_Id)
– Creates primary key constraint for P_id column
– Note: If you use the ALTER TABLE statement to add a primary key, the primary key
column(s) must already have been declared to not contain NULL values (when the
table was first created).
•
ALTER TABLE Persons
DROP PRIMARY KEY
– Drops a PRIMARY KEY constraint
FOREIGN KEY
• A FOREIGN KEY in one table points to a PRIMARY KEY in
another table.
•
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
)
•
ALTER TABLE Orders
ADD FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
– Create a FOREIGN KEY constraint on the "P_Id" column when the
"Orders" table is already created
• ALTER TABLE Orders
DROP FOREIGN KEY P_Id
– Drops a FOREIGN KEY constraint
ALTER TABLE
•
The ALTER TABLE statement is used to add, delete, or modify columns in an existing
table.
•
ALTER TABLE table_name
ADD column_name datatype constraint(optional)
•
ALTER TABLE table_name
CHANGE OLD_COLUMN_NAME NEW_COLUMN_NAME datatype constraint(optional)
– Old column name and new column name can be the same.
•
ALTER TABLE table_name
DROP COLUMN column_name
•
ALTER TABLE Persons
ADD DateOfBirth date
•
ALTER TABLE Persons
DROP COLUMN DateOfBirth
•
ALTER TABLE Persons
CHANGE DateOfBirth DateOfBirth year
MySQL Data Types (Text Types)
Data type
CHAR(size)
Description
Holds a fixed length string (can contain letters, numbers, and special characters).
The fixed size is specified in parenthesis. Can store up to 255 characters
VARCHAR(size) Holds a variable length string (can contain letters, numbers, and special characters).
The maximum size is specified in parenthesis. Can store up to 255 characters.
Note: If you put a greater value than 255 it will be converted to a TEXT type
TINYTEXT
Holds a string with a maximum length of 255 characters
TEXT
Holds a string with a maximum length of 65,535 characters
BLOB
For BLOBs (Binary Large OBjects). Holds up to 65,535 bytes of data
MEDIUMTEXT
Holds a string with a maximum length of 16,777,215 characters
MEDIUMBLOB
For BLOBs (Binary Large OBjects). Holds up to 16,777,215 bytes of data
LONGTEXT
Holds a string with a maximum length of 4,294,967,295 characters
LONGBLOB
For BLOBs (Binary Large OBjects). Holds up to 4,294,967,295 bytes of data
ENUM(x,y,z,etc Let you enter a list of possible values. You can list up to 65535 values in an ENUM list.
.)
If a value is inserted that is not in the list, a blank value will be inserted.
SET
Note: The values are sorted in the order you enter them.
Similar to ENUM except that SET may contain up to 64 list items and can store more
than one choice
MySQL Data Types (Number Types)
Data type
TINYINT(size)
SMALLINT(size)
MEDIUMINT(size)
INT(size)
BIGINT(size)
FLOAT(size,d)
DOUBLE(size,d)
DECIMAL(size,d)
Description
-128 to 127 normal. 0 to 255 UNSIGNED*. The maximum number of digits may be
specified in parenthesis
-32768 to 32767 normal. 0 to 65535 UNSIGNED*. The maximum number of digits
may be specified in parenthesis
-8388608 to 8388607 normal. 0 to 16777215 UNSIGNED*. The maximum number of
digits may be specified in parenthesis
-2147483648 to 2147483647 normal. 0 to 4294967295 UNSIGNED*.
The maximum number of digits may be specified in parenthesis
-9223372036854775808 to 9223372036854775807 normal. 0 to 184467440737095
51615 UNSIGNED*. The maximum number of digits may be specified in parenthesis
A small number with a floating decimal point. The maximum number of digits may be
specified in the size parameter. The maximum number of digits to the right of the
decimal point is specified in the d parameter
A large number with a floating decimal point. The maximum number of digits may be
specified in the size parameter. The maximum number of digits to the right of the
decimal point is specified in the d parameter
A DOUBLE stored as a string , allowing for a fixed decimal point. The maximum
number of digits may be specified in the size parameter. The maximum number of
digits to the right of the decimal point is specified in the d parameter
MySQL Data Types (Data Types)
Data type
DATE()
Description
A date. Format: YYYY-MM-DD
Note: The supported range is from '1000-01-01' to '9999-12-31'
DATETIME()
*A date and time combination. Format: YYYY-MM-DD HH:MM:SS
Note: The supported range is from '1000-01-01 00:00:00' to '9999-12-31 23:59:59'
TIMESTAMP() *A timestamp. TIMESTAMP values are stored as the number of seconds since the Unix
epoch ('1970-01-01 00:00:00' UTC). Format: YYYY-MM-DD HH:MM:SS
Note: The supported range is from '1970-01-01 00:00:01' UTC to '2038-01-09 03:14:07'
UTC
TIME()
A time. Format: HH:MM:SS
Note: The supported range is from '-838:59:59' to '838:59:59'
YEAR()
A year in two-digit or four-digit format.
Note: Values allowed in four-digit format: 1901 to 2155. Values allowed in two-digit
format: 70 to 69, representing years from 1970 to 2069