CS562 Project #1 Assignment Date : October 11th, 2012 Due Date : October 28th, 2012 TA: Lee, Min-Joong
SQL queries which you can type in at the SQL prompt. INTERACTIVE SQL is good for: defining database structure ▪ Create database, tables …. generating low-volume, ad hoc queries prototyping
SQL is a ‘non-procedural’ language. INTERACTIVE SQL is not good for the more sophisticated applications. SQL can be embedded within procedural programming languages(host language). Supports highly customized applications background applications running without user intervention database manipulation which exceeds the abilities of simple SQL.
USE ESQL - old school style! ESQL/c, ESQL/C++, ESQL/COBOL,… ESQL is precompiled by preprocessor. Use APIs JDBC ADO.NET ODBC …
For example, JDBC, java Get names of awards which ‘Winona Ryder ‘ won. … Statement stmt1 = conn.createStatement(); Statement stmt2 = conn.createStatement(); ResultSet rs1 = stmt1.executeQuery("select actorID from actor where actor name = ‘Winona Ryder ‘ “); while (rs1.next()) { name = rs1.getString(1); } rs1.close(); rs1 = stmt1.executeQuery(“select awordID from actorAwarded where actorID = “ + name ); while (rs1.next()) { ResultSet rs2 = stmt2.executeQuery(“select awordName from award where awardID = “+ rs.getInt(1) ); System.Out.Println(rs2.getString(1)); } rs2.close();
Translate given statements into SQLs and process the query using your application. Initial data input Insert award data Insert rating data Select statements Update statements Delete statements
Movie NameDirectorActorRoleGenrePublisherRelate date Edward Scissorhands Tim BurtonJohnny DeppMain actorFantasy, Romance 20th Century Fox Presents Winona Ryder Main actor Alice In Wonderland Tim BurtonJohnny DeppMain actorFantasy, Adventure, Family Korea Sony Pictures Anne Hathaway Main actor The Social Network David Fincher Jesse Eisenberg Main actorDramaKorea Sony Pictures Andrew Garfield Supporting Actor The Dark Knight Christophe r Nolan Christian Bale Main actorAction, Drama Warner Brothers Korea Heath Ledger Main actorMystery, Thriller Actor NameDate of birth Date of death Gender Johnny Depp Male Winona Ryder Female Anne Hathaway Female Christian Bale Male Heath Ledger Male Jesse Eisenberg Male Andrew Garfield Male Customer NameDate of birthGender Bob Male John Male Jack Male Jill Female Bell Female Director NameDate of birthDate of death Tim Burton David Fincher Christopher Nolan
Some queries are should be implemented using an embedded SQL method rather than using a single SQL statement or a trigger. Unspecified queries can be implemented in any ways. … 4. Select the names of the movies whose actor are dead. (Use embedded SQL method) 5. Select the names of the directors who cast the same actor more than once. (Translate this statement to a single SQL statement; do not use embedded SQL method) 6. Select the names of the movies and the genres, where movies have the common genre. (Translate this statement to a single SQL statement. Use sub-query SQL) …
You should show the results for translated inserts/deletes/updates queries and all the updated tables for each statement. Before run your application, assume that the database is empty.
Recommended environments Language : JAVA IDE : Eclipse DBMS : MySQL ▪ JDBC download: DBMS setting ▪ Database name : CS562_studentID (ex., CS562_ ) ▪ Root id : root // password : cs562 ▪ Tables are should be named as I descried in the initial data table. ▪ Database should be installed at localhost(local machine) If cannot understand above description, read JDBC Introduction.JDBC Introduction
Files to submit : cs562_studentid.zip includes the following files. Program source files README.txt ▪ How to run your program. ▪ What you have implemented and what you have not. ▪ Your implementation assumption if there are any. Submission E mail : Mail subject : [cs562 project#1] studentid_name ▪ ex) [cs562 project#1] _John
Due date : Oct. 28, 2012 Midnight Penalty : 20% per day Score Create table processing (20%) Insert processing (20%) Update processing (15%) Query processing (15%) Delete processing (15%) README and comment (15%)