Relational Algebra check for error

隐身守侯 提交于 2019-12-25 08:16:33

问题


Hi could someone please verify my work. Im not sure if im doing any of this correctly and would greatly appreciate any help. I am not allow to use the Bow tie operator. Thank you.

Question:

Books (ISBN, Title, Authors, Publisher, Ed, Year, Genre)
Patron (MemberNumber, FirstName, LastName, AddressLn1, AddressLn2, City, State, Zipcode)
Loan (MemberNumber,ISBN,DateLoaned,DateDue, DateReturned)

Business Logic
•   You may assume that the library only has one copy of each book.  
•   Each book may have many authors.  If a particular book has multiple authors, they are listed as a comma separated string.  You may assume that the same author always uses the same exact name and no two authors will have the same name.
•   Year is stored as an integer.
•   DateLoaned, DateDue, and DateReturned are stored as a date.
•   When a book is initially lent out, DateReturned is set to be NULL, upon its return, the value is updated.

1.1.    Find all books that were loaned out after 12/22/2012.  Show the ISBN, Title, and DateDue.
1.2.    Find all library patrons who have borrowed a book titled "Database Systems".  Show their FirstName, LastName, and DateLoaned.
1.3.    Find all books that were ever loaned out.  Display the ISBN.
1.4.    Find all books returned before 12/22/2012.   Display the ISBN.
1.5.    Find all books returned on or after 12/22/2012.  Display the ISBN.
1.6.    Find all books returned either (before 12/22/2012) or (on or after 12/22/2012)  Display the ISBN.
1.7.    In 1 sentence explain the difference between 1.3 and 1.6.
1.8.    Find all patrons who have never borrowed a book. 
1.9.    Find all books with Genre "Mystery" that have NEVER been loaned out.
1.10.   Create a new attribute ImportantDates.  A date is important if it is in the Loan relation either as a DateLoaned or a DateDue.  Display ImportantDates.
1.11.   Find all library patrons who have borrowed a book with an author "James Stewart".  You may use the expression LIKE "%James Stewart%" in your Relational Algebra.
1.12.   Find all library patrons who have never borrowed a book with an author "James Stewart".  You may use the expression LIKE "%James Stewart%" in your Relational Algebra.
1.13.   Find all library patrons who have only borrowed a book with an author "James Stewart".  If they have ever borrowed a book without the author "James Stewart" they should be excluded.  You may use the expression LIKE "%James Stewart%" in your Relational Algebra. 

Answer:

1.1) πISBN,TITLE,DATEDUE(σDATELOANED > 12222012 AND BOOKS.ISBN = LOAN.ISBN(LOAN X BOOKS)
1.2) πFIRSTNAME,LASTNAME,DATELOANED(σTITLE = "DATABASE SYSTEMS" AND BOOKS.ISBN = LOAN.ISBN AND PATRON.MEMBERNUMBER = LOAN.MEMBERNUMBER(BOOKS X PATRON X LOAN))
1.3) πISBN(σDATELOANED <> "NULL" AND BOOK.ISBN = LOAN.ISBN(LOAN X BOOKS))
1.4) πISBN(σDATELOANED < 12222012 AND BOOK.ISBN = LOAN.ISBN(LOAN X BOOKS))
1.5) πISBN(σDATELOANED >= 12222012 AND BOOK.ISBN = LOAN.ISBN(LOAN X BOOKS))
1.6) πISBN(σDATELOANED >= 12222012 OR DATELOANED <12222012 AND BOOK.ISBN = LOAN.ISBN(LOAN X BOOKS))
1.7) 1.3 AND 1.6 are the same as they both find books that have been loaned.
1.8) σDATELOANED = "NULL" AND PATRON.MEMBERNUMBER = LOAN.MEMBERNUMBER(LOAN X PATRON)
1.9) σGENRE = "MYSTERY" AND BOOKS.ISBN = LOAN.ISBN AND DATELOANED = "NULL"
1.10) LOAN(DATELOANED,DATEDUE) -> IMPORTANTDATE

Could you please give me an example of either 1.11, 1.12, or 1.13 as I have no clue in how to use the LIKE expression.


回答1:


The professor told you how to do it:

You may use the expression LIKE "%James Stewart%" in your Relational Algebra.

It has been about a year since I have had to use relational algebra, but it will be whatever your pre-conditions are (this is a task for you) followed by the line:

LIKE %James Stewart%

The SQL statement would look something like this:

Select * from patrons p where Books.author LIKE %James Stewart%

You will find in your studies relational algebra does not deal with functions of SQL it just looks at the purely mathematical side of things.



来源:https://stackoverflow.com/questions/9875319/relational-algebra-check-for-error

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!