2018-12-10

Dec 10 Practice Final Solutions .

http://www.cs.sjsu.edu/faculty/pollett/157a.3.18f/?PracFinal.shtml?Monday,%2010-Dec-2018%2011:19:58%20PST#top

http://www.cs.sjsu.edu/faculty/pollett/157a.3.18f/?PracFinal.shtml?Monday,%2010-Dec-2018%2011:19:58%20PST#top

-- Dec 10 Practice Final Solutions
  1. CREATE INDEX boo USING HASH ON foo(A, B); <br>

<br>

Connection conn = DriverManager.getConnection( jdbc:mysql://localhost/foo?" + "user=root&password=root"); <br> <br>

  • David Bui, Yuta Sugiura, Emerson Ye, Hongbin Zheng
(Edited: 2018-12-10)
9. CREATE INDEX boo USING HASH ON foo(A, B); <br> <br> 10. Connection conn = DriverManager.getConnection( jdbc:mysql://localhost/foo?" + "user=root&password=root"); <br> <br> - David Bui, Yuta Sugiura, Emerson Ye, Hongbin Zheng

-- Dec 10 Practice Final Solutions

Student Names:

Alexander Duong

Chico Malto

Conover Wang

&lt;nowiki&gt;

  1. Give the SQL syntax to create a table WorksOn(emp_id:INT, pid:INT) where emp_id has a foreign key constraint referencing the Employee ID attribute and pid has a foreign key constraint referencing Project ID. Explain the Cascade policy and how we could use it to handle DELETE modifications to this table.

CREATE TABLE WorksOn( emp_id INT, pid INT, FOREIGN KEY (emp_id) REFERENCES Employee(ID), FOREIGN KEY (pid) REFERENCES Project(ID) );

Under the cascade policy, changes to the referenced attributes are mimicked at the foreign key.

The policy can be specified in an ON DELETE clause to handle DELETE modifications to the table.

&lt;/nowiki&gt;

(Edited: 2018-12-10)
Student Names: Alexander Duong Chico Malto Conover Wang <nowiki> 6. Give the SQL syntax to create a table WorksOn(emp_id:INT, pid:INT) where emp_id has a foreign key constraint referencing the Employee ID attribute and pid has a foreign key constraint referencing Project ID. Explain the Cascade policy and how we could use it to handle DELETE modifications to this table. CREATE TABLE WorksOn( emp_id INT, pid INT, FOREIGN KEY (emp_id) REFERENCES Employee(ID), FOREIGN KEY (pid) REFERENCES Project(ID) ); Under the cascade policy, changes to the referenced attributes are mimicked at the foreign key. The policy can be specified in an ON DELETE clause to handle DELETE modifications to the table. </nowiki>

-- Dec 10 Practice Final Solutions

What is a tablespace? Give the SQL command to create a tablespace using the folder /usr/local/my-space. &lt;br&gt; A tablespace defines the physical location where we are storing our databases and tables. This is useful when we want some tables on the SSD versus the spin drive. &lt;br&gt; CREATE TABLESPACE tablespace1 LOCATION &lsquo;/usr/local/my-space&rsquo;;

By: Cindy Ho and Ada La

(Edited: 2018-12-10)
What is a tablespace? Give the SQL command to create a tablespace using the folder /usr/local/my-space. <br> A tablespace defines the physical location where we are storing our databases and tables. This is useful when we want some tables on the SSD versus the spin drive. <br> CREATE TABLESPACE tablespace1 LOCATION ‘/usr/local/my-space’; By: Cindy Ho and Ada La

-- Dec 10 Practice Final Solutions
  1. Give SQL to do the following DML operations:

(a) Create a table R(A:int,B:int,C:int) where A, B is the primary key, C is a key, the default value for B is 10, and B must be at least 5

CREATE TABLE R ( A INT, B INT DEFAULT 10 CHECK (B &gt;= 5), C INT UNIQUE, PRIMARY KEY (A, B) );

(b) Insert into R all distinct values (A, B, C) from S(A:int, B:int, C:int, D:int) where D &gt; 10

INSERT INTO R (SELECT DISTINCT A, B, C FROM S WHERE S.D &gt; 10);

  1. Give SQL for the following operations on relation R(A:int,B:int,C:int):

(a) Delete all rows of R where A&gt;5 and B&lt;10

DELETE FROM R WHERE A &gt; 5 AND B &lt; 10;

(b) Update the salaries of all MovieExecs with a salary less than 10,000,000 to make it 10,000,000

UPDATE MovieExecs SET salary = 10000000 WHERE salary &lt; 10000000;

Student names: Priscilla Ng, Monsi Magal, Serena Pascual, D. Adam Ball, Kevin Prakasa

(Edited: 2018-12-10)
3. Give SQL to do the following DML operations: (a) Create a table R(A:int,B:int,C:int) where A, B is the primary key, C is a key, the default value for B is 10, and B must be at least 5 CREATE TABLE R ( A INT, B INT DEFAULT 10 CHECK (B >= 5), C INT UNIQUE, PRIMARY KEY (A, B) ); (b) Insert into R all distinct values (A, B, C) from S(A:int, B:int, C:int, D:int) where D > 10 INSERT INTO R (SELECT DISTINCT A, B, C FROM S WHERE S.D > 10); 4. Give SQL for the following operations on relation R(A:int,B:int,C:int): (a) Delete all rows of R where A>5 and B<10 DELETE FROM R WHERE A > 5 AND B < 10; (b) Update the salaries of all MovieExecs with a salary less than 10,000,000 to make it 10,000,000 UPDATE MovieExecs SET salary = 10000000 WHERE salary < 10000000; Student names: Priscilla Ng, Monsi Magal, Serena Pascual, D. Adam Ball, Kevin Prakasa

-- Dec 10 Practice Final Solutions

Hovsep Lalikian, Sunil Thapa, Andrew Yuan, parameswaran ranganatan

  1. Assertions are used to ensure that constraints are still upheld when inserting and updating a database.

CREATE ASSERTION ValidSalary CHECK (NOT EXISTS (SELECT Employee.name FROM Employee WHERE salary &lt; 0 ) );

Hovsep Lalikian, Sunil Thapa, Andrew Yuan, parameswaran ranganatan 7. Assertions are used to ensure that constraints are still upheld when inserting and updating a database. CREATE ASSERTION ValidSalary CHECK (NOT EXISTS (SELECT Employee.name FROM Employee WHERE salary < 0 ) );

-- Dec 10 Practice Final Solutions
  1. The view should be defined by selecting (without distinct) some attributes from one relation R (which is also allowed to be an updatable view).

The WHERE clause is not allowed to involve R in a subquery. The FROM clause can only consist of one occurrence of R and no other relation. The list in the SELECT clause must include enough attributes that for every tuple inserted into the view, we can fill the other attributes out with NULL or the proper default values.

By: Yosias Hailu, Yu Ning, Erin Yang, Sam Esmaeili

8. The view should be defined by selecting (without distinct) some attributes from one relation R (which is also allowed to be an updatable view). The WHERE clause is not allowed to involve R in a subquery. The FROM clause can only consist of one occurrence of R and no other relation. The list in the SELECT clause must include enough attributes that for every tuple inserted into the view, we can fill the other attributes out with NULL or the proper default values. By: Yosias Hailu, Yu Ning, Erin Yang, Sam Esmaeili

-- Dec 10 Practice Final Solutions

1 a). SELECT * FROM (R NATURAL JOIN S);

b). ((( SELECT * FROM R) UNION ALL (SELECT * FROM S)) INTERSECT ALL ((SELECT * FROM T));

2 a). SELECT AVG(netWorth) FROM MovieExec;

b). Movies(&lt;u&gt;title&lt;/u&gt;, &lt;u&gt;length&lt;/u&gt;, year, genre, producerC#) MovieExec(name, address, cert#, netWorth) StarsIn(&lt;u&gt;movieTitle&lt;/u&gt;, &lt;u&gt;MovieYear&lt;/u&gt;, StarName)

SELECT MovieExec name, SUM(MovieLength)
FROM Movie, MovieExec, StarsIn
WHERE producersC# = cert# AND 
title = MovieTitle AND year = MovieYear AND starName = 'Harrison Ford'
GROUP BY MovieExec.name;

By: Parnika De, Alex Frank, Dominic Dinh, Ryan Moore and Himanshu Mehta

1 a). SELECT * FROM (R NATURAL JOIN S); b). ((( SELECT * FROM R) UNION ALL (SELECT * FROM S)) INTERSECT ALL ((SELECT * FROM T)); 2 a). SELECT AVG(netWorth) FROM MovieExec; b). Movies(<u>title</u>, <u>length</u>, year, genre, producerC#) MovieExec(name, address, cert#, netWorth) StarsIn(<u>movieTitle</u>, <u>MovieYear</u>, StarName) SELECT MovieExec name, SUM(MovieLength) FROM Movie, MovieExec, StarsIn WHERE producersC# = cert# AND title = MovieTitle AND year = MovieYear AND starName = 'Harrison Ford' GROUP BY MovieExec.name; By: Parnika De, Alex Frank, Dominic Dinh, Ryan Moore and Himanshu Mehta
X

 

Query Statistics

https://www.yioop.com/thread/9595

Total Elapsed Time for Queries: 0.04253196716308594 seconds.
SELECT LOCALE_NAME, WRITING_MODE FROM LOCALE WHERE LOCALE_TAG ='en-US'
Time: 0.00038909912109375 seconds.
SELECT COALESCE(MAX(UPDATE_TIMESTAMP), 0) AS MOST_RECENT FROM ITEM_IMPRESSION_SUMMARY WHERE USER_ID = 2 AND ITEM_TYPE = 3 AND ITEM_ID IN (SELECT GROUP_ID FROM USER_GROUP WHERE USER_ID = 2 AND STATUS = 1) AND UPDATE_PERIOD = -4
Time: 0.0004799365997314453 seconds.
DELETE FROM ITEM_IMPRESSION_SUMMARY WHERE USER_ID=? AND ITEM_ID=? AND ITEM_TYPE=? AND UPDATE_PERIOD = -4
Array ( [0] => 2 [1] => 9595 [2] => 1 )
Time: 0.003039121627807617 seconds.
INSERT INTO ITEM_IMPRESSION_SUMMARY VALUES (?, ?, ?, -4, ?, 0, -1, -1) ON CONFLICT DO NOTHING
Array ( [0] => 2 [1] => 9595 [2] => 1 [3] => 1789974862 )
Time: 0.00221705436706543 seconds.
UPDATE ITEM_IMPRESSION_SUMMARY SET NUM_VIEWS = NUM_VIEWS + 1 WHERE USER_ID=? AND ITEM_ID=? AND ITEM_TYPE=? AND UPDATE_PERIOD = -2 AND UPDATE_TIMESTAMP = 0
Array ( [0] => 2 [1] => 9595 [2] => 1 )
Time: 9.608268737792969E-5 seconds.
DELETE FROM ITEM_IMPRESSION_SUMMARY WHERE USER_ID=? AND ITEM_ID=? AND ITEM_TYPE=? AND UPDATE_PERIOD = -4
Array ( [0] => 2 [1] => 303 [2] => 3 )
Time: 0.002544164657592773 seconds.
INSERT INTO ITEM_IMPRESSION_SUMMARY VALUES (?, ?, ?, -4, ?, 0, -1, -1) ON CONFLICT DO NOTHING
Array ( [0] => 2 [1] => 303 [2] => 3 [3] => 1789974862 )
Time: 0.002417087554931641 seconds.
UPDATE ITEM_IMPRESSION_SUMMARY SET NUM_VIEWS = NUM_VIEWS + 1 WHERE USER_ID=? AND ITEM_ID=? AND ITEM_TYPE=? AND UPDATE_PERIOD = -2 AND UPDATE_TIMESTAMP = 0
Array ( [0] => 2 [1] => 303 [2] => 3 )
Time: 7.295608520507812E-5 seconds.
SELECT COUNT(GI.ID) AS NUM FROM GROUP_ITEM GI WHERE GI.GROUP_ID IN (SELECT GROUP_ID FROM USER_GROUP WHERE USER_ID = ? AND STATUS = 1) AND GI.TITLE NOT LIKE ? AND GI.PUBDATE > ?
Array ( [0] => 2 [1] => %2% [2] => 1789974862 )
Time: 0.0003800392150878906 seconds.
SELECT PARENT_ID FROM GROUP_ITEM WHERE GROUP_ID=? AND USER_ID=? AND TITLE=? LIMIT 1
Array ( [0] => -1 [1] => 2 [2] => 2-4 )
Time: 0.0001099109649658203 seconds.
SELECT PARENT_ID FROM GROUP_ITEM WHERE GROUP_ID=? AND USER_ID=? AND TITLE=? LIMIT 1
Array ( [0] => -1 [1] => 2 [2] => 2-37 )
Time: 4.00543212890625E-5 seconds.
SELECT PARENT_ID FROM GROUP_ITEM WHERE GROUP_ID=? AND USER_ID=? AND TITLE=? LIMIT 1
Array ( [0] => -1 [1] => 2 [2] => 2-202 )
Time: 3.504753112792969E-5 seconds.
SELECT PARENT_ID FROM GROUP_ITEM WHERE GROUP_ID=? AND USER_ID=? AND TITLE=? LIMIT 1
Array ( [0] => -1 [1] => 2 [2] => 2-687 )
Time: 3.290176391601562E-5 seconds.
SELECT PARENT_ID FROM GROUP_ITEM WHERE GROUP_ID=? AND USER_ID=? AND TITLE=? LIMIT 1
Array ( [0] => -1 [1] => 2 [2] => 2-1115 )
Time: 3.218650817871094E-5 seconds.
SELECT PARENT_ID FROM GROUP_ITEM WHERE GROUP_ID=? AND USER_ID=? AND TITLE=? LIMIT 1
Array ( [0] => -1 [1] => 2 [2] => 2-1138 )
Time: 5.507469177246094E-5 seconds.
SELECT PARENT_ID FROM GROUP_ITEM WHERE GROUP_ID=? AND USER_ID=? AND TITLE=? LIMIT 1
Array ( [0] => -1 [1] => 2 [2] => 2-1140 )
Time: 3.194808959960938E-5 seconds.
SELECT PARENT_ID FROM GROUP_ITEM WHERE GROUP_ID=? AND USER_ID=? AND TITLE=? LIMIT 1
Array ( [0] => -1 [1] => 2 [2] => 2-1149 )
Time: 3.290176391601562E-5 seconds.
SELECT PARENT_ID FROM GROUP_ITEM WHERE GROUP_ID=? AND USER_ID=? AND TITLE=? LIMIT 1
Array ( [0] => -1 [1] => 2 [2] => 2-1152 )
Time: 3.194808959960938E-5 seconds.
SELECT * FROM GROUP_ITEM WHERE ID=? LIMIT 1
Array ( [0] => 9595 )
Time: 8.296966552734375E-5 seconds.
SELECT OPTIONS FROM SOCIAL_GROUPS WHERE GROUP_ID = ?
Array ( [0] => 303 )
Time: 4.506111145019531E-5 seconds.
SELECT COUNT(DISTINCT GI.ID) AS NUM FROM GROUP_ITEM GI, SOCIAL_GROUPS G, USER_GROUP UG, USERS O WHERE GI.PARENT_ID='9595' AND NOT LOWER(group_name) LIKE LOWER('Personal$%') AND (UG.USER_ID='2' OR G.REGISTER_TYPE IN ('4','3') ) AND GI.USER_ID=O.USER_ID AND GI.GROUP_ID=G.GROUP_ID AND GI.GROUP_ID=UG.GROUP_ID AND (( G.MEMBER_ACCESS IN ('2','3','4', '5')) OR (G.OWNER_ID = UG.USER_ID OR UG.USER_ID = '1'))
Time: 0.001040935516357422 seconds.
SELECT DISTINCT GI.ID AS ID, GI.PARENT_ID AS PARENT_ID, GI.GROUP_ID AS GROUP_ID, GI.TITLE AS TITLE, GI.DESCRIPTION AS DESCRIPTION, GI.FLAG AS FLAG, GI.PUBDATE AS PUBDATE, GI.EDIT_DATE AS EDIT_DATE, G.OWNER_ID AS OWNER_ID, G.MEMBER_ACCESS AS MEMBER_ACCESS, G.GROUP_NAME AS GROUP_NAME, P.USER_NAME AS USER_NAME, P.USER_ID AS USER_ID, GI.TYPE AS TYPE, GI.UPS AS UPS, GI.DOWNS AS DOWNS, G.VOTE_ACCESS AS VOTE_ACCESS FROM GROUP_ITEM GI, SOCIAL_GROUPS G, USER_GROUP UG, USERS P WHERE GI.PARENT_ID='9595' AND NOT LOWER(group_name) LIKE LOWER('Personal$%') AND (UG.USER_ID='2' OR G.REGISTER_TYPE IN ('4','3') ) AND GI.GROUP_ID=G.GROUP_ID AND GI.GROUP_ID=UG.GROUP_ID AND (( G.MEMBER_ACCESS IN ('2','3','4', '5')) OR (G.OWNER_ID = UG.USER_ID OR UG.USER_ID = '1')) AND GI.PARENT_ID NOT IN (SELECT DISCUSS_THREAD FROM GROUP_PAGE WHERE TITLE LIKE '%$$%' AND DISCUSS_THREAD IS NOT NULL) AND P.USER_ID = GI.USER_ID ORDER BY GI.PUBDATE ASC LIMIT 10 OFFSET 0
Time: 0.02609682083129883 seconds.
SELECT OPTIONS FROM SOCIAL_GROUPS WHERE GROUP_ID = ?
Array ( [0] => 303 )
Time: 0.0001678466796875 seconds.
SELECT OPTIONS FROM SOCIAL_GROUPS WHERE GROUP_ID = ?
Array ( [0] => 303 )
Time: 2.694129943847656E-5 seconds.
SELECT OPTIONS FROM SOCIAL_GROUPS WHERE GROUP_ID = ?
Array ( [0] => 303 )
Time: 1.883506774902344E-5 seconds.
SELECT OPTIONS FROM SOCIAL_GROUPS WHERE GROUP_ID = ?
Array ( [0] => 303 )
Time: 1.883506774902344E-5 seconds.
SELECT OPTIONS FROM SOCIAL_GROUPS WHERE GROUP_ID = ?
Array ( [0] => 303 )
Time: 1.883506774902344E-5 seconds.
SELECT OPTIONS FROM SOCIAL_GROUPS WHERE GROUP_ID = ?
Array ( [0] => 303 )
Time: 2.217292785644531E-5 seconds.
SELECT OPTIONS FROM SOCIAL_GROUPS WHERE GROUP_ID = ?
Array ( [0] => 303 )
Time: 1.406669616699219E-5 seconds.
SELECT OPTIONS FROM SOCIAL_GROUPS WHERE GROUP_ID = ?
Array ( [0] => 303 )
Time: 1.287460327148438E-5 seconds.
SELECT * FROM GROUP_ITEM WHERE ID=? LIMIT 1
Array ( [0] => 9595 )
Time: 0.000186920166015625 seconds.
SELECT OPTIONS FROM SOCIAL_GROUPS WHERE GROUP_ID = ?
Array ( [0] => 303 )
Time: 4.816055297851562E-5 seconds.
SELECT STATUS FROM USERS WHERE USER_ID = ?
Array ( [0] => 2 )
Time: 0.0004270076751708984 seconds.
SELECT USER_NAME FROM USERS WHERE USER_ID = ?
Array ( [0] => 2 )
Time: 0.0001871585845947266 seconds.
SELECT * FROM VISITOR WHERE ADDRESS = :address AND PAGE_NAME = :page_name LIMIT 1
Array ( [:address] => 216.73.216.124 [:page_name] => forbidden_time_out )
Time: 0.0004730224609375 seconds.
SELECT COUNT(DISTINCT G.GROUP_ID) AS NUM FROM USER_GROUP UG, SOCIAL_GROUPS G WHERE UG.USER_ID = ? AND UG.GROUP_ID = G.GROUP_ID AND ( UG.STATUS = 1 OR UG.STATUS = 5)
Array ( [0] => 2 )
Time: 0.0004000663757324219 seconds.
SELECT G.GROUP_ID AS GROUP_ID FROM SOCIAL_GROUPS G WHERE G.GROUP_NAME = ?
Array ( [0] => Personal$2 )
Time: 0.0001659393310546875 seconds.
SELECT USER_ID FROM USER_GROUP WHERE GROUP_ID = ?
Array ( [0] => -1 )
Time: 6.508827209472656E-5 seconds.
SELECT G.GROUP_ID AS GROUP_ID, G.GROUP_NAME AS GROUP_NAME, G.OWNER_ID AS OWNER_ID, O.USER_NAME AS OWNER, REGISTER_TYPE, UG.STATUS AS STATUS, G.MEMBER_ACCESS AS MEMBER_ACCESS, G.VOTE_ACCESS AS VOTE_ACCESS, G.POST_LIFETIME AS POST_LIFETIME, UG.JOIN_DATE AS JOIN_DATE, G.OPTIONS AS OPTIONS, G.RENDER_ENGINE AS RENDER_ENGINE, G.GROUP_THEME AS GROUP_THEME, G.PAGE_HEADER AS PAGE_HEADER, G.PAGE_FOOTER AS PAGE_FOOTER FROM SOCIAL_GROUPS G, USERS O, USER_GROUP UG WHERE (UG.USER_ID = :user_id) AND UG.GROUP_ID= :group_id AND UG.GROUP_ID=G.GROUP_ID AND OWNER_ID = O.USER_ID LIMIT 1
Array ( [:group_id] => 303 [:user_id] => 2 )
Time: 0.0002069473266601562 seconds.
SELECT RENDER_ENGINE FROM SOCIAL_GROUPS WHERE GROUP_ID = ?
Array ( [0] => -2 )
Time: 0.0001780986785888672 seconds.
SELECT RENDER_ENGINE FROM SOCIAL_GROUPS WHERE GROUP_ID = ?
Array ( [0] => 303 )
Time: 3.099441528320312E-5 seconds.
SELECT RENDER_ENGINE FROM SOCIAL_GROUPS WHERE GROUP_ID = ?
Array ( [0] => 303 )
Time: 2.193450927734375E-5 seconds.
SELECT RENDER_ENGINE FROM SOCIAL_GROUPS WHERE GROUP_ID = ?
Array ( [0] => 303 )
Time: 2.09808349609375E-5 seconds.
SELECT RENDER_ENGINE FROM SOCIAL_GROUPS WHERE GROUP_ID = ?
Array ( [0] => 303 )
Time: 6.389617919921875E-5 seconds.
SELECT RENDER_ENGINE FROM SOCIAL_GROUPS WHERE GROUP_ID = ?
Array ( [0] => 303 )
Time: 2.503395080566406E-5 seconds.
SELECT RENDER_ENGINE FROM SOCIAL_GROUPS WHERE GROUP_ID = ?
Array ( [0] => 303 )
Time: 1.597404479980469E-5 seconds.
SELECT RENDER_ENGINE FROM SOCIAL_GROUPS WHERE GROUP_ID = ?
Array ( [0] => 303 )
Time: 1.382827758789062E-5 seconds.
SELECT RENDER_ENGINE FROM SOCIAL_GROUPS WHERE GROUP_ID = ?
Array ( [0] => 303 )
Time: 1.71661376953125E-5 seconds.
SELECT G.GROUP_ID AS GROUP_ID, G.GROUP_NAME AS GROUP_NAME, G.OWNER_ID AS OWNER_ID, O.USER_NAME AS OWNER, REGISTER_TYPE, UG.STATUS AS STATUS, G.MEMBER_ACCESS AS MEMBER_ACCESS, G.VOTE_ACCESS AS VOTE_ACCESS, G.POST_LIFETIME AS POST_LIFETIME, UG.JOIN_DATE AS JOIN_DATE, G.OPTIONS AS OPTIONS, G.RENDER_ENGINE AS RENDER_ENGINE, G.GROUP_THEME AS GROUP_THEME, G.PAGE_HEADER AS PAGE_HEADER, G.PAGE_FOOTER AS PAGE_FOOTER FROM SOCIAL_GROUPS G, USERS O, USER_GROUP UG WHERE (UG.USER_ID = :user_id OR G.REGISTER_TYPE IN (3,4)) AND UG.GROUP_ID= :group_id AND UG.GROUP_ID=G.GROUP_ID AND OWNER_ID = O.USER_ID LIMIT 1
Array ( [:group_id] => 303 [:user_id] => 2 )
Time: 0.0002970695495605469 seconds.
SELECT STATUS FROM USER_GROUP WHERE USER_ID=? AND GROUP_ID=? LIMIT 1
Array ( [0] => 2 [1] => 303 )
Time: 8.296966552734375E-5 seconds.