28 Chapter 1 Databases and Database Users 1.4. What are the responsibilities of the DBA and the database designers? 1.5. What are the different types of database end users? Discuss the main activi- ties of each. 1.6. Discuss the capabilities that should be provided by a DBMS. 1.7. Discuss the differences between database systems and information retrieval systems. Exercises 1.8. Identify some informal queries and update operations that you would expect to apply to the database shown in Figure 1.2. 1.9. What is the difference between controlled and uncontrolled redundancy? Illustrate with examples. 1.10. Specify all the relationships among the records of the database shown in Figure 1.2. 1.11. Give some additional views that may be needed by other user groups for the database shown in Figure 1.2. 1.12. Cite some examples of integrity constraints that you think can apply to the database shown in Figure 1.2. 1.13. Give examples of systems in which it may make sense to use traditional file processing instead of a database approach. 1.14. Consider Figure 1.2. a. If the name of the ‘CS’ (Computer Science) Department changes to ‘CSSE’ (Computer Science and Software Engineering) Department and the corresponding prefix for the course number also changes, identify the columns in the database that would need to be updated. b. Can you restructure the columns in the COURSE, SECTION, and PREREQUISITE tables so that only one column will need to be updated? Selected Bibliography The October 1991 issue of Communications of the ACM and Kim (1995) include several articles describing next-generation DBMSs; many of the database features discussed in the former are now commercially available. The March 1976 issue of ACM Computing Surveys offers an early introduction to database systems and may provide a historical perspective for the interested reader. 54 Chapter 2 Database System Concepts and Architecture 2.5. What is the difference between logical data independence and physical data independence? Which one is harder to achieve? Why? 2.6. What is the difference between procedural and nonprocedural DMLs? 2.7. Discuss the different types of user-friendly interfaces and the types of users who typically use each. 2.8. With what other computer system software does a DBMS interact? 2.9. What is the difference between the two-tier and three-tier client/server architectures? 2.10. Discuss some types of database utilities and tools and their functions. 2.11. What is the additional functionality incorporated in n-tier architecture (n > 3)? Exercises 2.12. Think of different users for the database shown in Figure 1.2. What types of applications would each user need? To which user category would each belong, and what type of interface would each need? 2.13. Choose a database application with which you are familiar. Design a schema and show a sample database for that application, using the notation of Figures 1.2 and 2.1. What types of additional information and constraints would you like to represent in the schema? Think of several users of your database, and design a view for each. 2.14. If you were designing a Web-based system to make airline reservations and sell airline tickets, which DBMS architecture would you choose from Section 2.5? Why? Why would the other architectures not be a good choice? 2.15. Consider Figure 2.1. In addition to constraints relating the values of columns in one table to columns in another table, there are also constraints that impose restrictions on values in a column or a combination of columns within a table. One such constraint dictates that a column or a group of columns must be unique across all rows in the table. For example, in the STUDENT table, the Student_number column must be unique (to prevent two different students from having the same Student_number). Identify the column or the group of columns in the other tables that must be unique across all rows in the table. 234 Chapter 7 Data Modeling Using the Entity-Relationship (ER) Model Review Questions 7.1. Discuss the role of a high-level data model in the database design process. 7.2. List the various cases where use of a NULL value would be appropriate. 7.3. Define the following terms: entity, attribute, attribute value, relationship instance, composite attribute, multivalued attribute, derived attribute, complex attribute, key attribute, and value set (domain). 7.4. What is an entity type? What is an entity set? Explain the differences among an entity, an entity type, and an entity set. 7.5. Explain the difference between an attribute and a value set. 7.6. What is a relationship type? Explain the differences among a relationship instance, a relationship type, and a relationship set. 7.7. What is a participation role? When is it necessary to use role names in the description of relationship types? 7.8. Describe the two alternatives for specifying structural constraints on rela- tionship types. What are the advantages and disadvantages of each? 7.9. Under what conditions can an attribute of a binary relationship type be migrated to become an attribute of one of the participating entity types? 7.10. When we think of relationships as attributes, what are the value sets of these attributes? What class of data models is based on this concept? 7.11. What is meant by a recursive relationship type? Give some examples of recursive relationship types. 7.12. When is the concept of a weak entity used in data modeling? Define the terms owner entity type, weak entity type, identifying relationship type, and partial key. 7.13. Can an identifying relationship of a weak entity type be of a degree greater than two? Give examples to illustrate your answer. 7.14. Discuss the conventions for displaying an ER schema as an ER diagram. 7.15. Discuss the naming conventions used for ER schema diagrams. Exercises 7.16. Consider the following set of requirements for a UNIVERSITY database that is used to keep track of students’ transcripts. This is similar but not identical to the database shown in Figure 1.2: a. The university keeps track of each student’s name, student number, Social Security number, current address and phone number, permanent address and phone number, birth date, sex, class (freshman, sophomore, ..., graduate), major department, minor department (if any), and degree program Exercises b. c. d. e. (B.A., B.S., ..., Ph.D.). Some user applications need to refer to the city, state, and ZIP Code of the student’s permanent address and to the student’s last name. Both Social Security number and student number have unique values for each student. Each department is described by a name, department code, office number, office phone number, and college. Both name and code have unique values for each department. Each course has a course name, description, course number, number of semester hours, level, and offering department. The value of the course number is unique for each course. Each section has an instructor, semester, year, course, and section number. The section number distinguishes sections of the same course that are taught during the same semester/year; its values are 1, 2, 3, ..., up to the number of sections taught during each semester. A grade report has a student, section, letter grade, and numeric grade (0, 1, 2, 3, or 4). Design an ER schema for this application, and draw an ER diagram for the schema. Specify key attributes of each entity type, and structural constraints on each relationship type. Note any unspecified requirements, and make appropriate assumptions to make the specification complete. 7.17. Composite and multivalued attributes can be nested to any number of levels. Suppose we want to design an attribute for a STUDENT entity type to keep track of previous college education. Such an attribute will have one entry for each college previously attended, and each such entry will be composed of college name, start and end dates, degree entries (degrees awarded at that college, if any), and transcript entries (courses completed at that college, if any). Each degree entry contains the degree name and the month and year the degree was awarded, and each transcript entry contains a course name, semester, year, and grade. Design an attribute to hold this information. Use the conventions in Figure 7.5. 7.18. Show an alternative design for the attribute described in Exercise 7.17 that uses only entity types (including weak entity types, if needed) and relationship types. 7.19. Consider the ER diagram in Figure 7.20, which shows a simplified schema for an airline reservations system. Extract from the ER diagram the requirements and constraints that produced this schema. Try to be as precise as possible in your requirements and constraints specification. 7.20. In Chapters 1 and 2, we discussed the database environment and database users. We can consider many entity types to describe such an environment, such as DBMS, stored database, DBA, and catalog/data dictionary. Try to specify all the entity types that can fully describe a database system and its environment; then specify the relationship types among them, and draw an ER diagram to describe such a general database environment. 235 236 Chapter 7 Data Modeling Using the Entity-Relationship (ER) Model Figure 7.20 An ER diagram for an AIRLINE database schema. Airport_code City State Name 1 DEPARTURE_ AIRPORT Scheduled_dep_time AIRPORT M 1 Le g_no N N Instances 1 Number N Type_name FLIGHT_LEG Scheduled_arr_time ARRIVAL_ AIRPORT CAN_ LAND N Airline Company 1 AIRPLANE_ TYPE Arr_time 1 DEPARTS Dep_time N ARRIVES N Weekdays Total_no_of_seats 1 AIRPLANE ASSIGNED Customer_name 1 N Code N FLIGHT FARES Restrictions Amount N TYPE Airplane_id 1 INSTANCE_OF Max_seats 1 LEGS FARE No_of_avail_seats N LEG_INSTANCE Date Cphone Seat_no RESERVATION SEAT N 1 Notes: A LEG (segment) is a nonstop portion of a flight. A LEG_INSTANCE is a particular occurrence of a LEG on a particular date. 7.21. Design an ER schema for keeping track of information about votes taken in the U.S. House of Representatives during the current two-year congressional session. The database needs to keep track of each U.S. STATE’s Name (e.g., ‘Texas’, ‘New York’, ‘California’) and include the Region of the state (whose domain is {‘Northeast’, ‘Midwest’, ‘Southeast’, ‘Southwest’, ‘West’}). Each Exercises CONGRESS_PERSON in the House of Representatives is described by his or her Name, plus the District represented, the Start_date when the congressperson was first elected, and the political Party to which he or she belongs (whose domain is {‘Republican’, ‘Democrat’, ‘Independent’, ‘Other’}). The database keeps track of each BILL (i.e., proposed law), including the Bill_name, the Date_of_vote on the bill, whether the bill Passed_or_failed (whose domain is {‘Yes’, ‘No’}), and the Sponsor (the congressperson(s) who sponsored—that is, proposed—the bill). The database also keeps track of how each congressperson voted on each bill (domain of Vote attribute is {‘Yes’, ‘No’, ‘Abstain’, ‘Absent’}). Draw an ER schema diagram for this application. State clearly any assumptions you make. 7.22. A database is being constructed to keep track of the teams and games of a sports league. A team has a number of players, not all of whom participate in each game. It is desired to keep track of the players participating in each game for each team, the positions they played in that game, and the result of the game. Design an ER schema diagram for this application, stating any assumptions you make. Choose your favorite sport (e.g., soccer, baseball, football). 7.23. Consider the ER diagram shown in Figure 7.21 for part of a BANK database. Each bank can have multiple branches, and each branch can have multiple accounts and loans. a. List the strong (nonweak) entity types in the ER diagram. b. Is there a weak entity type? If so, give its name, partial key, and identifying relationship. c. What constraints do the partial key and the identifying relationship of the weak entity type specify in this diagram? d. List the names of all relationship types, and specify the (min, max) constraint on each participation of an entity type in a relationship type. Justify your choices. e. List concisely the user requirements that led to this ER schema design. f. Suppose that every customer must have at least one account but is restricted to at most two loans at a time, and that a bank branch cannot have more than 1,000 loans. How does this show up on the (min, max) constraints? 7.24. Consider the ER diagram in Figure 7.22. Assume that an employee may work in up to two departments or may not be assigned to any department. Assume that each department must have one and may have up to three phone numbers. Supply (min, max) constraints on this diagram. State clearly any additional assumptions you make. Under what conditions would the relationship HAS_PHONE be redundant in this example? 7.25. Consider the ER diagram in Figure 7.23. Assume that a course may or may not use a textbook, but that a text by definition is a book that is used in some course. A course may not use more than five books. Instructors teach from 237 238 Chapter 7 Data Modeling Using the Entity-Relationship (ER) Model 1 BANK Code Name BRANCHES N BANK_BRANCH Addr Branch_no Addr 1 1 ACCTS LOANS N N Acct_no Loan_no Balance ACCOUNT Type Amount LOAN M M A_C L_C Type N N Name Ssn Phone EMPLOYEE CUSTOMER WORKS_IN Figure 7.21 An ER diagram for a BANK database schema. Addr DEPARTMENT CONTAINS HAS_PHONE PHONE Figure 7.22 Part of an ER diagram for a COMPANY database. Exercises INSTRUCTOR TEACHES 239 COURSE USES Figure 7.23 Part of an ER diagram for a COURSES database. TEXT two to four courses. Supply (min, max) constraints on this diagram. State clearly any additional assumptions you make. If we add the relationship ADOPTS, to indicate the textbook(s) that an instructor uses for a course, should it be a binary relationship between INSTRUCTOR and TEXT, or a ternary relationship between all three entity types? What (min, max) constraints would you put on it? Why? 7.26. Consider an entity type SECTION in a UNIVERSITY database, which describes the section offerings of courses. The attributes of SECTION are Section_number, Semester, Year, Course_number, Instructor, Room_no (where section is taught), Building (where section is taught), Weekdays (domain is the possible combinations of weekdays in which a section can be offered {‘MWF’, ‘MW’, ‘TT’, and so on}), and Hours (domain is all possible time periods during which sections are offered {‘9–9:50 A.M.’, ‘10–10:50 A.M.’, ..., ‘3:30–4:50 P.M.’, ‘5:30–6:20 P.M.’, and so on}). Assume that Section_number is unique for each course within a particular semester/year combination (that is, if a course is offered multiple times during a particular semester, its section offerings are numbered 1, 2, 3, and so on). There are several composite keys for section, and some attributes are components of more than one key. Identify three composite keys, and show how they can be represented in an ER schema diagram. 7.27. Cardinality ratios often dictate the detailed design of a database. The cardi- nality ratio depends on the real-world meaning of the entity types involved and is defined by the specific application. For the following binary relationships, suggest cardinality ratios based on the common-sense meaning of the entity types. Clearly state any assumptions you make. Entity 1 1. STUDENT 2. STUDENT 3. CLASSROOM Cardinality Ratio Entity 2 ______________ ______________ ______________ SOCIAL_SECURITY_CARD TEACHER WALL 240 Chapter 7 Data Modeling Using the Entity-Relationship (ER) Model 4. COUNTRY 5. COURSE ______________ ______________ CURRENT_PRESIDENT ______________ ______________ ______________ ______________ ORDER TEXTBOOK 6. ITEM (that can be found in an order) 7. STUDENT 8. CLASS 9. INSTRUCTOR CLASS INSTRUCTOR OFFICE 10. EBAY_AUCTION _ITEM ______________ EBAY_BID 7.28. Consider the ER schema for the MOVIES database in Figure 7.24. Assume that MOVIES is a populated database. ACTOR is used as a generic term and includes actresses. Given the constraints shown in the ER schema, respond to the following statements with True, False, or Maybe. Assign a response of Maybe to statements that, while not explicitly shown to be True, cannot be proven False based on the schema as shown. Justify each answer. Figure 7.24 An ER diagram for a MOVIES database schema. M N PERFORMS_IN MOVIE ACTOR 1 1 ACTOR_ PRODUCER 2 LEAD_ROLE N ALSO_A_ DIRECTOR N 1 1 1 DIRECTOR PRODUCER M DIRECTS N PRODUCES Laboratory Exercises a. There are no actors in this database that have been in no movies. b. There are some actors who have acted in more than ten movies. c. Some actors have done a lead role in multiple movies. d. A movie can have only a maximum of two lead actors. e. Every director has been an actor in some movie. f. No producer has ever been an actor. g. A producer cannot be an actor in some other movie. h. There are movies with more than a dozen actors. i. Some producers have been a director as well. j. Most movies have one director and one producer. k. Some movies have one director but several producers. l. There are some actors who have done a lead role, directed a movie, and produced some movie. m. No movie has a director who also acted in that movie. 7.29. Given the ER schema for the MOVIES database in Figure 7.24, draw an instance diagram using three movies that have been released recently. Draw instances of each entity type: MOVIES, ACTORS, PRODUCERS, DIRECTORS involved; make up instances of the relationships as they exist in reality for those movies. 7.30. Illustrate the UML Diagram for Exercise 7.16. Your UML design should observe the following requirements: a. A student should have the ability to compute his/her GPA and add or drop majors and minors. b. Each department should be to able add or delete courses and hire or terminate faculty. c. Each instructor should be able to assign or change a student’s grade for a course. Note: Some of these functions may be spread over multiple classes. Laboratory Exercises 7.31. Consider the UNIVERSITY database described in Exercise 7.16. Build the ER schema for this database using a data modeling tool such as ERwin or Rational Rose. 7.32. Consider a MAIL_ORDER database in which employees take orders for parts from customers. The data requirements are summarized as follows: ■ The mail order company has employees, each identified by a unique employee number, first and last name, and Zip Code. ■ Each customer of the company is identified by a unique customer number, first and last name, and Zip Code. 241 CHAPTER 1: DATABASES AND DATABASE USERS Answers to Selected Exercises 1.8 - Identify some informal queries and update operations that you would expect to apply to the database shown in Figure 1.2. Answer: (a) (Query) List the names of all students majoring in Computer Science. (b) (Query) What are the prerequisites of the Database course?. (c) (Query) Retrieve the transcript of Smith. This is a list of <CourseName, SectionIdentifier, Semester, Year, Grade> for each course section that Smith has completed. (d) (Update) Insert a new student in the database whose Name=Jackson, StudentNumber=23, Class=1 (freshman), and Major=MATH. (e) (Update) Change the grade that Smith received in Intro to Computer Science section 119 to B. 1.9 - What is the difference between controlled and uncontrolled redundancy? Answer: Redundancy is when the same fact is stored multiple times in several places in a database. For example, in Figure 1.5(a) the fact that the name of the student with StudentNumber=8 is Brown is ScholarStock stored multiple times. Redundancy is controlled when the DBMS ensures that multiple copies of the same data are consistent; for example, if a new record with StudentNumber=8 is stored in the database of Figure 1.5(a), the DBMS will ensure that StudentName=Smith in that record. If the DBMS has no control over this, we have uncontrolled redundancy. 1.10 - Specify all the relationships among the records of the database shown in Figure 1.2. Answer: (a) Each SECTION record is related to a COURSE record. (b) Each GRADE_REPORT record is related to one STUDENT record and one SECTION record. (c) Each PREREQUISITE record relates two COURSE records: one in the role of a course and the other in the role of a prerequisite to that course. 1.11 - Give some additional views that may be needed by other user groups for the database shown in Figure 1.2. Answer: (a) A view that groups all the students who took each section and gives each student's grade. This may be useful for printing the grade report for each section for the university administration's use. (b) A view that gives the number of courses taken and the GPA (grade point average) for each student. This may be used to determine honors students. ScholarStock 1.12 – Cite some examples of integrity constraints that you think can apply to the database shown in Figure 1.2. Answer: We give a few constraints expressed in English. Following each constraint, we give its type in the relational database terminology that will be covered in Chapter 6, for reference purposes. (a) The StudentNumber should be unique for each STUDENT record (key constraint). (b) The CourseNumber should be unique for each COURSE record (key constraint). (c) A value of CourseNumber in a SECTION record must also exist in some COURSE record (referential integrity constraint). (d) A value of StudentNumber in a GRADE_REPORT record must also exist in some STUDENT record (referential integrity constraint). (e) The value of Grade in a GRADE_REPORT record must be one of the values in the set {A, B, C, D, F, I, U, S} (domain constraint). (f) Every record in COURSE must have a value for CourseNumber (entity integrity constraint). (g) A STUDENT record cannot have a value of Class=2 (sophomore) unless the student has completed a number of sections whose total course CreditHours is greater that 24 credits (general semantic integrity constraint). ScholarStock 1.13 - Give examples of systems in which it may make sense to use traditional file processing instead of a database approach. Answer: 1.1. Small internal utility to locate files Formatted: Bullets and Numbering 2.2. Small single user application that does not require security (such as a customized calculator or a personal address and phone book) 3.3. Real-time navigation system (with heavy computation and very little data) 4.4. The students may think of others. 1.14 - Consider Figure 1.2. a.a. If the name of the „CS‟ (Computer Science) Department changes to „CSSE‟ (Computer Science and Software Engineering) Department and the corresponding prefix for the course number also changes, identify the columns in the database that would need to be updated. b.b. Can you restructure the columns in COURSE, SECTION, and PREREQUISITE tables so that only one column will need to be updated? Answer: a. The following columns will need to be updated. Table Column(s) STUDENT Major COURSE CourseNumber and Department SECTION CourseNumber PREREQUISITE CourseNumber and PrerequisiteNumber b. You should split the following columns into two columns: Table Column Split Columns ScholarStock Formatted: Bullets and Numbering COURSE CourseNumber CourseDept and CourseNum SECTION CourseNumber CourseDept and CourseNum PREREQUISITE CourseNumber CourseDept and CourseNum PREREQUISITE PrerequisiteNumber PreReqDept and PreReqNum Note that in the COURSE table, the column CourseDept will not be needed after the above change, since it is redundant with the Department column. CHAPTER 2: DATABASE SYSTEM CONCEPTS AND ARCHITECTURE Answers to Selected Exercises 2.12 - Think of different users for the database of Figure 1.2. What type of applications would each user need? To which user category would each belong and what type of interface would they need? Answer: (a) Registration Office User: They can enter data that reflect the registration of students in sections of courses, and later enter the grades of the students. Applications can include: - Register a student in a section of a course - Check whether a student who is registered in a course has the appropriate prerequisite courses - Drop a student from a section of a course - Add a student to a section of a course - Enter the student grades for a section Application programmers can write a number of canned transactions for the registration office end-users, providing them with either forms and menus, or with a parametric ScholarStock interface. (b) Admissions Office User: The main application is to enter newly accepted students into the database. Can use the same type of interfaces as (a). (c) Transcripts Office User: The main application is to print student transcripts. Application programmers can write a canned transaction using a report generator utility to print the transcript of a student in a prescribed format. The particular student can be identified by name or social security number. Another application would be to generate grade slips at the end of each semester for all students who have completed courses during that semester. Again, this application could be programmed using a report generator utility. 2.13 - No solution provided. 2.14 - if you were designing a Web-based system to make airline reservations and to sell airline tickets, which DBMS Architecture would you choose from Section 2.5? Why? Why would the other architectures not be a good choice? Answer: 2.5.4 Three-Tier Client/Server Architecture for Web Application is the best choice. The Client consists of Web User Interface. The Web Server contains the application logic which includes all the rules and regulations related to the reservation process and the issue of tickets; the Database Server contains the DBMS. 2.5.1 Centralized DBMS Architecture would not work since the user interface and database server are on different machines for a web-based system. 2.5.2 Basic Client/Server Architecture and 2.5.3 Two-Tier Client/Server Architecture would work if the Business Logic can reside on server other than the DBMS Server. In general, if the business ScholarStock logic was on the DBMS Server, it will put an excessive burden on the server. If the business logic were to reside on the web client, it will burden the communication network as well a possibly thin client. 2.15 - Consider Figure 2.1. In addition to constraints relating the values of columns in one table to columns in another table, there are also constraints that impose restrictions on values in a column or a combination of columns within a table. One such constraint forces that a column or a group of columns must be unique across all rows in the table. For example, in the STUDENT table, the StudentNumber column must be unique (to prevent two different students from having the same StudentNumber). Identify the column or the group of columns in the other tables that must be unique across all rows in the table? Answer: Table Column(s) COURSE CourseNumber Since this contains the combination of the department and the number that must be unique within the department. Note we will overlook the fact this does not accommodate a department from offering several “Special Topics” course with the same CourseNumber but different titles. We could make this a combination of CourseNumber and CourseName, but this is more succeptible to someone mistyping while entering data. PREREQUISITE The combination of CourseNumber and PrerequisiteNumber SECTION SectionIdentifier We assume that no two sections can have the same SectionIdentifier. If we were to consider that SectionIdentifier is unique only within a given course offered in a given term (such as section 2 of CS101) then the answer changes to the combination of SectionIdentifier, CourseNumber, Semester, and Year. GRADE_REPORT StudentNumber and SectionIdentifier As per assumption stated in SECTION, the SectionIdentifier will be different if a student takes the same course or a different course in another term. ScholarStock CHAPTER 7(3): DATA MODELING USING THE ENTITY-RELATIONSHIP (ER) MODEL Answers to Selected Exercises 7.16 - Consider the following set of requirements for a UNIVERSITY database that is used to keep track of students' transcripts. This is similar but not identical to the database shown in Figure 1.2: (a) The university keeps track of each student's name, student number, social security number, current address and phone, permanent address and phone, birthdate, sex, class (freshman, sophomore, ..., graduate), major department, minor department (if any), and degree program (B.A., B.S., ..., Ph.D.). Some user applications need to refer to the city, state, and zip of the student's permanent address, and to the student's last name. Both social security number and student number have unique values for each student. (b) Each department is described by a name, department code, office number, office phone, and college. Both name and code have unique values for each department. (c) Each course has a course name, description, course number, number of semester hours, level, and offering department. The value of course number is unique for each course. (d) Each section has an instructor, semester, year, course, and section number. The section number distinguishes different sections of the same course that are taught during the same semester/year; its values are 1, 2, 3, ..., up to the number of sections taught during each semester. (e) A grade report has a student, section, letter grade, and numeric grade (0, 1, 2, 3, 4 for F, D, C, B, A, respectively). Design an ER schema for this application, and draw an ER diagram for that schema. ScholarStock Specify key attributes of each entity type and structural constraints on each relationship type. Note any unspecified requirements, and make appropriate assumptions to make the specification complete. Answer: 7.16 7.17 - Composite and multi-valued attributes can be nested to any number of levels. Suppose we want to design an attribute for a STUDENT entity type to keep track of previous college education. Such an attribute will have one entry for each college previously attended, and this entry is composed of: college name, start and end dates, degree entries (degrees awarded at that college, if any), and transcript entries (courses completed at that college, if any). Each degree entry is formed of degree name and the month and year it was awarded, and each transcript entry is formed of a ScholarStock course name, semester, year, and grade. Design an attribute to hold this information. Use the conventions of Figure 7.5. Answer: { PreviousEducation ( CollegeName, StartDate, EndDate, { Degree (DegreeName, Month, Year) }, { Transcript (CourseName, Semester, Year, Grade) } ) } 7.16 3.18 - Show an alternative design for the attribute described in Exercise 7.17 that uses only entity types (including weak entity types if needed) and relationship types. ScholarStock Answer: This example illustrates a perceived weakness of the ER model, which is: how does the database designer decide what to model as an entity type and what to model as a relationship type. In our solution, we created a weak entity type ATTENDANCE; each (weak) entity in ATTENDANCE represents a period in which a STUDENT attended a particular COLLEGE, and is identified by the STUDENT and the StartDate of the period. Hence, the StartDate attribute is the partial key of ATTENDANCE. Each ATTENDANCE entity is related to one COLLEGE and zero or more DEGREEs (the degrees awarded during that attendance period). The TRANSCRIPT of the STUDENT during each attendance period is modeled as a weak entity type, which gives the records of the student during the attendance period. Each (weak) entity in TRANSCRIPT gives the record of the sudent in one course during the attendance period, as shown in the ER diagram below. Other ER schema designs are also possible for this problem. 7.19 - Consider the ER diagram of Figure 7.20, which shows a simplified schema for an airline reservations system. Extract from the ER diagram the requirements and constraints that resulted in this schema. Try to be as precise as possible in your requirements and constraints specification. Answer: ScholarStock (1) The database represents each AIRPORT, keeping its unique AirportCode, the AIRPORT Name, and the City and State in which the AIRPORT is located. (2) Each airline FLIGHT has a unique number, the Airline for the FLIGHT, and the Weekdays on which the FLIGHT is scheduled (for example, every day of the week except Sunday can be coded as X7). (3) A FLIGHT is composed of one or more FLIGHT LEGs (for example, flight number CO1223 from New York to Los Angeles may have two FLIGHT LEGs: leg 1 from New York to Houston and leg 2 from Houston to Los Angeles). Each FLIGHT LEG has a DEPARTURE AIRPORT and Scheduled Departure Time, and an ARRIVAL AIRPORT and Scheduled Arrival Time. (4) A LEG INSTANCE is an instance of a FLIGHT LEG on a specific Date (for example, CO1223 leg 1 on July 30, 1989). The actual Departure and Arrival AIRPORTs and Times are recorded for each flight leg after the flight leg has been concluded. The Number of available seats and the AIRPLANE used in the LEG INSTANCE are also kept. (5) The customer RESERVATIONs on each LEG INSTANCE include the Customer Name, Phone, and Seat Number(s) for each reservation. (6) Information on AIRPLANEs and AIRPLANE TYPEs are also kept. For each AIRPLANE TYPE (for example, DC-10), the TypeName, manufacturing Company, and Maximum Number of Seats are kept. The AIRPORTs in which planes of this type CAN LAND are kept in the database. For each AIRPLANE, the AirplaneId, Total number of seats, and TYPE are kept. 7.20 - No solution provided. 7.21 Additional information: ScholarStock - There are 435 congresspersons in the U.S. House of Representatives. - States have between one (AK, DE, MT, ND, SD, VT, and WY) and 52 (CA) representatives. - M represents number of bills during the 2-year session. The resulting ER Diagram is shown in Figure A. 7.22 - A database is being constructed to keep track of the teams and games of a sports league. A team has a number of players, not all of whom participate in each game. It is desired to keep track of the players participating in each game for each team, the positions they played in that game, and the result of the game. Try to design an ER schema diagram for this application, stating any assumptions you make. Choose your favorite sport (soccer, football, baseball ...). Answer: ScholarStock The following design may be used for a baseball league. Here, we assumed that each game in the schedule is identified by a unique Game#, and a game is also identified uniquely by the combination of Date, starting Time, and Field where it is played. The Performance attribute of PARTICIPATE is used to store information on the individual performance of each player in a game. This attribute can be designed to keep the information needed for statistics, and may be quite complex. One possible design for the Performance attribute may be the following (using the notation of Figure 7.8): Performance( {Hitting(AtBat#, Inning#, HitType, Runs, RunsBattedIn, StolenBases)}, {Pitching(Inning#, Hits, Runs, EarnedRuns, StrikeOuts, Walks, Outs, Balks, WildPitches)}, {Defense(Inning#, {FieldingRecord(Position, PutOuts, Assists, Errors)})} ) Here, performance is a composite attribute made up of three multivalued components: Hitting, Pitching, and Defense. Hitting has a value for each AtBat of a player, and records the HitType (suitable coded; for example, 1 for single, 2 for double, 3 for triple, 4 for home run, 0 for walk, -1 for strikeout, -2 for fly out, ...) and other information concerning the AtBat. Pitching has a value for each inning during which the player pitched. Defense has a value for each inning a player played a fielding position. We can have a less detailed or a more detailed design for the performance of a player in each game, depending on how much information we need to keep in the database. Suitable variations of the ER diagram shown below can be used for other sports. ScholarStock 7.23 - Consider the ER diagram shown in Figure 7.21 for part of a BANK database. Each bank can have multiple branches, and each branch can have multiple accounts and loans. (a) List the strong (nonweak) entity types in the ER diagram. (b) Is there a weak entity type? If so, give its name, its partial key, and its identifying relationship. (c) What constraints do the partial key and the identifying relationship of the weak entity type specify in this diagram? (d) List the names of all relationship types, and specify the (min,max) constraint on each participation of an entity type in a relationship type. Justify your choices. ScholarStock (e) List concisely the user requirements that led to this ER schema design. (f) Suppose that every customer must have at least one account but is restricted to at most two loans at a time, and that a bank branch cannot have more than 1000 loans. How does this show up on the (min,max) constraints? Answer: ScholarStock (a) Entity types: BANK, ACCOUNT, CUSTOMER, LOAN (b) Weak entity type: BANK-BRANCH. Partial key: BranchNo. Identifying relationship: BRANCHES. (c) The partial key BranchNo in BANK-BRANCH specifies that the same BranchNo value ay occur under different BANKs. The identifying relationship BRANCHES specifies that BranchNo values are uniquely assigned for those BANK-BRANCH entities that are related to the same BANK entity. Hence, the combination of BANK Code and BranchNo together constitute a full identifier for a BANK-BRANCH. (d) Relationship Types: BRANCHES, ACCTS, LOANS, A-C, L-C. The (min, max) constraints are shown below. (e) The requirements may be stated as follows: Each BANK has a unique Code, as well as a Name and Address. Each BANK is related to one or more BANK-BRANCHes, and the BranhNo is unique among each set of BANK-BRANCHes that are related to the same BANK. Each BANK-BRANCH has an Address. Each BANK-BRANCH has zero or more LOANS and zero or more ACCTS. Each ACCOUNT has an AcctNo (unique), Balance, and Type and is related to exactly one BANK-BRANCH and to at least one CUSTOMER. Each LOAN has a LoanNo (unique), Amount, and Type and is related to exactly one BANK-BRANCH and to at least one CUSTOMER. Each CUSTOMER has an SSN (unique), Name, Phone, and Address, and is related to zero or more ACCOUNTs and to zero or more LOANs. (f) The (min, max) constraints would be changed as follows: ScholarStock 7.24 - Consider the ER diagram in Figure 7.22. Assume that an employee may work in up to two departments or may not be assigned to any department. Assume that each department must have one and may have up to three phone numbers. Supply (min, max) constraints on this diagram. State clearly any additional assumptions you make. Under what conditions would the relationship HAS_PHONE be redundant in this example? Answer: Assuming the following additional assumptions: - Each department can have anywhere between 1 and 10 employees. - Each phone is used by one, and only one, department. - Each phone is assigned to at least one, and may be assigned to up to 10 employees. - Each employee is assigned at least one, but no more than 6 phones. The resulting ER Diagram will have the (min, max) constraints shown in Figure A. Relationship HAS-PHONE would be redundant under the following conditions: - Each employee is assigned all of the phones of each department that he/she works in. - An employee cannot have any other phones outside the departments he/she works is. EMPLOYEE PHONE ScholarStock DEPARTMENT HAS-PHONE CONTAINS WORKS-IN (0, 2) (1, 3) (1, 10) (1, 10) (1, 1) (1, 6) 7.25 - Consider the ER diagram in Figure 7.23. Assume that a course may or may not use a textbook, but that a text by definition is a book that is used in some course. A course may not use more than five books. Instructors teach from two to four courses. Supply (min, max) constraints on this diagram. State clearly any additional assumptions you make. If we add the relationship ADOPTS between INSTRUCTOR and TEXT, what (min, max) constraints would you put on it? Why? Answer: Assuming the following additional assumptions: - Each course is taught by exactly one instructor. - Each textbook is used by one and only one course. - An instructor does not have to adopt a textbook for all courses. - If a text exists: - ___it is used in some course, - ___hence it is adopted by some instructor who teaches that course. - An instructor is considered to adopt a text if it is used in some course taught - by that instructor. The resulting ER Diagram will have the (min, max) constraints shown in Figure B. ScholarStock 7.26 - Consider an entity type SECTION in a UNIVERSITY database, which describes the section offerings of courses. The attributes of SECTION are SectionNumber, Semester, Year, CourseNumber, Instructor, RoomNo (where section is taught), Building (where section is taught), Weekdays (domain is the possible combinations of weekdays in which a section can be offered {MWF, MW, TT, etc.}). Assume tat SectionNumber is unique for each course within a particular semester/year combination (that is, if a course if offered multiple times during a particular semester, its section offerings are numbered 1, 2, 3, etc.). There are several composite keys for SECTION, and some attribute sare components of more than one key. Identify three composite keys, and show how they can be represented in an ER schema diagram. Answer: ScholarStock 7.27 - Cardinality ratios often dictate the detailed design of a database. The cardinality ratio depends on the real-world meaning of the entity types involved and is defined by the specific application. For the binary relationships below, suggest cardinality ratios based on common-sense meaning of the entity types. Clearly state any assumptions you make. Entity 1 Cardinality Ratio Entity 2 1.1. Student SocialSecurityCard 2.2. Student Teacher 3.3. ClassRoom Wall 4.4. Country CurrentPresident 5.5. Course TextBook 6.6. Item (that can be found in an order) Order 7.7. Student Class ScholarStock Formatted: Bullets and Numbering Formatted: Bullets and Numbering Formatted: Bullets and Numbering Formatted: Bullets and Numbering Formatted: Bullets and Numbering Formatted: Bullets and Numbering Formatted: Bullets and Numbering 8.8. Class Instructor 9.9. Instructor Office 10.10. E-bay Auction item E-bay bid Formatted: Bullets and Numbering Formatted: Bullets and Numbering Formatted: Bullets and Numbering Answer: Entity 1 Cardinality Ratio Entity 2 1-many 1.1. Student A student may have more than one social security card (legally with the same unique social security number), and every social security number belongs to a unique student. SocialSecurityCard Formatted: Bullets and Numbering Many-many 2.2. Student Generally students are taught by many teachers and a teacher teaches many students. Teacher Formatted: Bullets and Numbering Many-many 3.3. ClassRoom Don‟t forget that the wall is usually shared by adjacent rooms. Wall Formatted: Bullets and Numbering 1-1 4.4. Country Assuming a normal country under normal circumstances having one president at a time. ScholarStock CurrentPresident Formatted: Bullets and Numbering Many-many 5.5. Course 6.6. Item (that can be found in an order) A course may have many textbooks and a text book may be prescribed for different courses. TextBook Formatted: Bullets and Numbering Many-many Assuming the same item can appear in different orders. Order Formatted: Bullets and Numbering Many-many 7.7. Student One student may take several classes. Every class usually has several students. Class Formatted: Bullets and Numbering Many-to-1 8.8. Class Assuming that every class has a unique instructor. In case instructors were allowed to team teach, this will be many-many. Instructor Formatted: Bullets and Numbering 1-1 9.9. Instructor 10.10. E-bay Auction item Assuming every instructor has only one office and it is not shared. In case of offices shared by 2 instructors, the relationship will be 2-1. Conversely, if an instructor has a joint appointment (in two departments) and offices in both departments, then the relationship will be 12. In a very general case, it may be many-many. 1-many 1 item has many bids and ScholarStock Office E-bay bid Formatted: Bullets and Numbering Formatted: Bullets and Numbering a bid is unique to an item (assuming a regular auction format). 7.28-7.29 – No solutions provided. 3.30 - Illustrate the UML Diagram for exercise 7.16. Your UML design should observe the following requirements: a.a. The student should have the ability to compute his/her GPA and add or drop majors and minors. b.b. Each department should be to able add or delete courses and hire or terminate faculty. c.c. Each instructor should be able to assign or change a grade to a student for a course. Note: Some of these functions may be spread over multiple classes. Answer: ScholarStock Formatted: Bullets and Numbering STUDENT DEPARTMENT SECTION Name: Name: {CS,…} Instructor DepartmentCode: {Codes} Semester StudentNumber OfficeNumber Year SocialSecNumber OfficePhone: add_course <Phone> delete_course College: {Colleges} hire_faculty CourseNumber fire_faculty StudentNumber <Name> CurrentAddress: <Address> CurrentPhone: <Phone> PermanentAddress: SectionNumber: {1,2,…} GRADE REPORT SectionNumber LetterGrade: {A,B,C,D,F} <Address> NumberGrade: {0,1,2,3,4} PermanentPhone: <Phone> PREREQUISITE compute_gpa Birthdate: Date CourseNumber add_major Sex: {M,F} PrerequisiteNumber drop_major Class: {F,So,J,Se,G} COURSE add_minor MajorDepartment CourseName drop_minor MinorDepartment Description INSTRUCTOR Name: CourseNumber: {Course} <Name> Degree: {BA,BS,…} SemesterHours Phone: Level <Phone> assign_grade DepartmentCode change_grade Department This one isn‟t finished yet. The relationships need to be added and some of the functions should be moved to span classes. ScholarStock