Relationship Diagram for Final Project: Name UserName Password Phone PortfolioID Portfolios 1,1) Maintain 0,M) Customers Address 0,M) Maintained by CustomerID Name QuantityTraded CostPerShare Are Contained In PurchaseDate TransactionID Location 0,M) OpenTime Stocks 1,1) 1,M) Trade Markets CompanyName Symbol 0,M) Traded On CloseTime MarketName Review Quarter Earnings Revenue 1,M) Name Analysts Phone AnalystID
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
SQL for Project Implementation: CONTENTS of Project Script # ------------ # -- # -- 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 -- -- 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 varchar210), Street varchar250), City varchar230), State char2), Zip_Code char5),
Open_Time char5), Close_Time char5), primary keymarket_name) -- Create STOCKS Table create table STOCKS Symbol varchar25), Company_Name varchar230), Market_Name varchar210) references MARKETSMarket_Name) primary keysymbol) -- Create STOCKHISTORY Table create table STOCKHISTORY TransactionID integer, Symbol varchar25) references STOCKSSymbol) Epoch date, Cost_Per_Share float constraint costck checkcost_per_share > 0.0), Quantity_Traded integer constraint qtyck checkquantity_traded > 0), primary keytransactionid) -- Create CUSTOMERS Table create table CUSTOMERS CustomerID integer, Customer_Name varchar230), Street varchar250), City varchar230), State char2), Zip_Code char5), Phone char12), UserName varchar230), Password varchar216), primary keycustomerid) -- Create PORTFOLIO Table create table PORTFOLIO PortfolioID integer, Portfolio_Name varchar230), CustomerID integer references CUSTOMERSCustomerID) primary keyportfolioid)
-- Create PORTFOLIO_CONTENTS Table create table PORTFOLIO_CONTENTS PortfolioID integer references PORTFOLIOPortfolioID) TransactionID integer references STOCKHISTORYTransactionID) primary keytransactionid) -- Create ANALYST Table create table ANALYST AnalystID integer, Analyst_Name varchar230), Phone char12), primary keyanalystid) -- Create ANALYSIS Table create table ANALYSIS AnalystID integer references ANALYSTAnalystID) Symbol varchar25) references STOCKSSymbol) Quarter char6), Earnings float default 0.0, Revenue float default 0.0, primary keyanalystid, Symbol, Quarter) spool off set echo off CONTENTS of CTL Files -- MARKETS Table INFILE '/home/cpsc337505/project/data/markets.csv' INTO TABLE MARKETS Market_Name, Street, City, State, Zip_Code, Open_Time, Close_Time) -- STOCKS Table INFILE '/home/cpsc337505/project/data/stocks.csv' INTO TABLE STOCKS
Symbol, Company_Name, Market_Name) -- CUSTOMERS Table INFILE '/home/cpsc337505/project/data/customers.csv' INTO TABLE CUSTOMERS CustomerID, Customer_Name, Street, City, State, Zip_Code, Phone, UserName, Password) -- PORTFOLIO Table INFILE '/home/cpsc337505/project/data/portfolio.csv' INTO TABLE PORTFOLIO PortfolioID, Portfolio_Name, CustomerID) -- ANALYST Table INFILE '/home/cpsc337505/project/data/analyst.csv' INTO TABLE ANALYST AnalystID, Analyst_Name, Phone) -- ANALYSIS Table INFILE '/home/cpsc337505/project/data/analysis.csv' INTO TABLE ANALYSIS AnalystID, Symbol, Earnings, Revenue, Quarter) -- STOCK HISTORY Table INFILE '/home/cpsc337505/project/data/stockhistory.csv' INTO TABLE STOCKHISTORY TransactionID, Symbol, Epoch DATE "MM/DD/YYYY HH24:MI:SS", Cost_Per_Share, Quantity_Traded) -- PORTFOLIO CONTENT Table INFILE '/home/cpsc337505/project/data/port_content.csv' INTO TABLE PORTFOLIO_CONTENTS PortfolioID, TransactionID)