Вы находитесь на странице: 1из 6

CPSC 3375 Final Project ER Diagram

November 9, 2005

Benjamin A. Balogh

Relationship Diagram for Final Project:

Name

UserName Password

Phone

(1,1)

PortfolioID

Portfolios

(0,M)
Maintain

(0,M)

Customers

Address

Maintained by

Name
CustomerID
QuantityTraded

CostPerShare

Are Contained
In

PurchaseDate

TransactionID

Location
OpenTime

(0,M)

Stocks

CompanyName

Symbol

(0,M)

(1,1)

Trade

(1,M)

Markets

CloseTime

Traded On

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
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,

Benjamin A. Balogh

CPSC 3375 Final Project ER Diagram


November 9, 2005
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)
);

Benjamin A. Balogh

CPSC 3375 Final Project ER Diagram


November 9, 2005
------------------------------------------------------------------- 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 '"'

Benjamin A. Balogh

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)

Вам также может понравиться