You are on page 1of 6

CPSC 3375 – Final Project ER Diagram

November 9, 2005 Benjamin A. Balogh

Relationship Diagram for Final Project:

Name UserName Password

Phone

(1,1) (0,M)
PortfolioID Portfolios Maintain Customers Address

(0,M)
Maintained by
Name
CustomerID
QuantityTraded CostPerShare

Are Contained
In

PurchaseDate TransactionID

Location

(0,M)
OpenTime

(1,1) (1,M)
Stocks Trade Markets

CompanyName Symbol (0,M)


Traded On CloseTime

MarketName

Review

Quarter Earnings Revenue

(1,M)

Name
Analysts

Phone

AnalystID
CPSC 3375 – Final Project ER Diagram
November 9, 2005 Benjamin A. Balogh

Table Design:

Functional Dependencies:

Analyst.AnalystID, Analysis.Symbol, Analysis.Quarter  Analysis.Earnings, Analysis.Revenue


StockHistory.Symbol, StockHistory.Date, StockHistory.Time  StockHistory.CostPerShare
Market.MarketName  Market.OpenTime, Market.CloseTime
Customer.Name Customer.Phone
Analyst.Name  Analyst.PhoneNumber
CPSC 3375 – Final Project ER Diagram
November 9, 2005 Benjamin A. Balogh

SQL for Project Implementation:

CONTENTS of Project Script


# ------------------------------------------------------------------------------
# -- Benjamin A. Balogh
# -- Final Project
# -- November 28, 2005
# -- CPSC3375 - Database Concepts I
# -- Sean J. Geoghegan, Ph.D.
# -- Batch file for Table Setup & Data Load of Online Stock Management System
# ------------------------------------------------------------------------------
# Create Tables in SQLPLUS
# Requires user/pass ($1) information as a command line parameter:
sqlplus $1 < /home/cpsc337505/Project/sql/load.sql
# ------------------------------------------------------------------------------
# Load data into each individual table:
sqlldr $1 control=/home/cpsc337505/Project/ctl/markets.ctl
sqlldr $1 control=/home/cpsc337505/Project/ctl/stocks.ctl
sqlldr $1 control=/home/cpsc337505/Project/ctl/customers.ctl
sqlldr $1 control=/home/cpsc337505/Project/ctl/portfolio.ctl
sqlldr $1 control=/home/cpsc337505/Project/ctl/analyst.ctl
sqlldr $1 control=/home/cpsc337505/Project/ctl/analysis.ctl
sqlldr $1 control=/home/cpsc337505/Project/ctl/stock_history.ctl
sqlldr $1 control=/home/cpsc337505/Project/ctl/portfolio_contents.ctl
# ------------------------------------------------------------------------------
# Run Pre-Defined Queries
sqlplus $1 < /home/cpsc337505/Project/sql/query.sql
# ------------------------------------------------------------------------------

CONTENTS of load.sql
------------------------------------------------------------------
set echo on
spool /home/cpsc337505/Project/log/load.log
------------------------------------------------------------------
-- Benjamin A. Balogh
-- Final Project
-- November 28, 2005
-- CPSC3375 - Database Concepts I
-- Sean J. Geoghegan, Ph.D.
-- Setup Online Stock Management System Tables
------------------------------------------------------------------
-- Drop All Tables
drop table PORTFOLIO_CONTENTS;
drop table STOCKHISTORY;
drop table ANALYSIS;
drop table PORTFOLIO;
drop table STOCKS;
drop table MARKETS;
drop table ANALYST;
drop table CUSTOMERS;
------------------------------------------------------------------
-- Create MARKETS Table
create table MARKETS
(
Market_Name varchar2(10) not null,
Street varchar2(50) not null,
City varchar2(30) not null,
State char(2) not null,
Zip_Code char(5) not null,
CPSC 3375 – Final Project ER Diagram
November 9, 2005 Benjamin A. Balogh

Open_Time char(5) not null,


Close_Time char(5) not null,
primary key(Market_Name)
);
------------------------------------------------------------------
-- Create STOCKS Table
create table STOCKS
(
Symbol varchar2(5) not null,
Company_Name varchar2(30) not null,
Market_Name varchar2(10)
not null
references MARKETS(Market_Name)
ON DELETE CASCADE,
primary key(Symbol)
);
------------------------------------------------------------------
-- Create STOCKHISTORY Table
create table STOCKHISTORY
(
TransactionID integer not null,
Symbol varchar2(5)
not null
references STOCKS(Symbol)
ON DELETE CASCADE,
Epoch date not null,
Cost_Per_Share float
not null
constraint costck check(Cost_Per_Share > 0.0),
Quantity_Traded integer
not null
constraint qtyck check(Quantity_Traded > 0),
primary key(TransactionID)
);
------------------------------------------------------------------
-- Create CUSTOMERS Table
create table CUSTOMERS
(
CustomerID integer not null,
Customer_Name varchar2(30) not null,
Street varchar2(50) not null,
City varchar2(30) not null,
State char(2) not null,
Zip_Code char(5) not null,
Phone char(12) not null,
UserName varchar2(30) not null,
Password varchar2(16) not null,
primary key(CustomerID)
);
------------------------------------------------------------------
-- Create PORTFOLIO Table
create table PORTFOLIO
(
PortfolioID integer not null,
Portfolio_Name varchar2(30) not null,
CustomerID integer
not null
references CUSTOMERS(CustomerID)
ON DELETE CASCADE,
primary key(PortfolioID)
);
CPSC 3375 – Final Project ER Diagram
November 9, 2005 Benjamin A. Balogh

------------------------------------------------------------------
-- Create PORTFOLIO_CONTENTS Table
create table PORTFOLIO_CONTENTS
(
PortfolioID integer
not null
references PORTFOLIO(PortfolioID)
ON DELETE CASCADE,
TransactionID integer
not null
references STOCKHISTORY(TransactionID)
ON DELETE CASCADE,
primary key(TransactionID)
);
------------------------------------------------------------------
-- Create ANALYST Table
create table ANALYST
(
AnalystID integer not null,
Analyst_Name varchar2(30) not null,
Phone char(12) not null,
primary key(AnalystID)
);
------------------------------------------------------------------
-- Create ANALYSIS Table
create table ANALYSIS
(
AnalystID integer
not null
references ANALYST(AnalystID)
ON DELETE CASCADE,
Symbol varchar2(5)
not null
references STOCKS(Symbol)
ON DELETE CASCADE,
Quarter char(6) not null,
Earnings float default 0.0,
Revenue float default 0.0,
primary key(AnalystID, Symbol, Quarter)
);
------------------------------------------------------------------
spool off
set echo off
------------------------------------------------------------------

CONTENTS of CTL Files


------------------------------------------------------------------
-- MARKETS Table
LOAD DATA
INFILE '/home/cpsc337505/Project/data/Markets.csv'
INTO TABLE MARKETS
FIELDS TERMINATED BY ","
OPTIONALLY ENCLOSED BY '"'
(Market_Name, Street, City, State, Zip_Code, Open_Time, Close_Time)
------------------------------------------------------------------
-- STOCKS Table
LOAD DATA
INFILE '/home/cpsc337505/Project/data/Stocks.csv'
INTO TABLE STOCKS
FIELDS TERMINATED BY ","
OPTIONALLY ENCLOSED BY '"'
CPSC 3375 – Final Project ER Diagram
November 9, 2005 Benjamin A. Balogh

(Symbol, Company_Name, Market_Name)


------------------------------------------------------------------
-- CUSTOMERS Table
LOAD DATA
INFILE '/home/cpsc337505/Project/data/Customers.csv'
INTO TABLE CUSTOMERS
FIELDS TERMINATED BY ","
OPTIONALLY ENCLOSED BY '"'
(CustomerID, Customer_Name, Street, City, State, Zip_Code, Phone, UserName, Password)
------------------------------------------------------------------
-- PORTFOLIO Table
LOAD DATA
INFILE '/home/cpsc337505/Project/data/Portfolio.csv'
INTO TABLE PORTFOLIO
FIELDS TERMINATED BY ","
OPTIONALLY ENCLOSED BY '"'
(PortfolioID, Portfolio_Name, CustomerID)
------------------------------------------------------------------
-- ANALYST Table
LOAD DATA
INFILE '/home/cpsc337505/Project/data/Analyst.csv'
INTO TABLE ANALYST
FIELDS TERMINATED BY ","
OPTIONALLY ENCLOSED BY '"'
(AnalystID, Analyst_Name, Phone)
------------------------------------------------------------------
-- ANALYSIS Table
LOAD DATA
INFILE '/home/cpsc337505/Project/data/Analysis.csv'
INTO TABLE ANALYSIS
FIELDS TERMINATED BY ","
OPTIONALLY ENCLOSED BY '"'
(AnalystID, Symbol, Earnings, Revenue, Quarter)
------------------------------------------------------------------
-- STOCK HISTORY Table
LOAD DATA
INFILE '/home/cpsc337505/Project/data/StockHistory.csv'
INTO TABLE STOCKHISTORY
FIELDS TERMINATED BY ","
OPTIONALLY ENCLOSED BY '"'
(TransactionID, Symbol, Epoch DATE "MM/DD/YYYY HH24:MI:SS", Cost_Per_Share, Quantity_Traded)
------------------------------------------------------------------
-- PORTFOLIO CONTENT Table
LOAD DATA
INFILE '/home/cpsc337505/Project/data/Port_Content.csv'
INTO TABLE PORTFOLIO_CONTENTS
FIELDS TERMINATED BY ","
OPTIONALLY ENCLOSED BY '"'
(PortfolioID, TransactionID)

You might also like