(Spring 2015) Instructor: Craig Duckett Lecture 04: Thursday, April 16, 2015 Chapter 3 Summary, Teamwork 1 PHASE 1: DISCOVERY DUE: Tuesday, April 28th, uploaded to Team Web Site and ZIPPED and uploaded to StudentRacker by Phase 1 Project Manager Projects and Team have been selected! Phase 2: Design due Tuesday, May 19th 2 The Team Project Five Phase Due Dates • • • • • Phase 1: Discovery (200 Points) DUE TUESDAY, APRIL 28 Phase 2: Design (200 Points) DUE TUESDAY, MAY 19 Phase 3: Develop (200 Points) DUE THURSDAY, MAY 28 Phase 4: Distribute (200 Points) DUE TUESDAY, JUNE 9 Phase 5: Documentation (200 Points) DUE THURSDAY, JUNE 18 3 TEAMS Online Team Collaboration Programs (Free) https://asana.com/ http://www.glip.com/ https://www.trello.com/ http://www.moxtra.com/ 4 Database Design for Mere Mortals Chapter 3 Summary TERMINOLOGY • • VALUE RELATED TERMS • Data • Information • Null STRUCTURE RELATED TERMS • Table • Field • Record • View • Keys • • RELATIONSHIP RELATED TERMS • One-to-One • One-to-Many • Many-to-Many • Participation INTEGRITY RELATED TERMS • Field Specification • General Elements • Physical Elements • Logical Elements • Data Integrity • Table-Level Integrity • Field-Level Integrity • Relationship-Level Integrity • Business Rules TERMINOLOGY Value Related Terms • • • • • • • Data is raw. It simply exists and has no significance beyond its existence (in and of itself). It can exist in any form, usable or not. It does not have meaning of itself. In computer parlance, a spreadsheet or database generally starts out by holding data. Information is data that has been given meaning by way of relational connection. This "meaning" can be useful, but does not have to be. In computer parlance, a relational database makes information from the data stored within it. Knowledge is the appropriate collection of information, such that it's intent is to be useful. Knowledge is a deterministic process. When someone "memorizes" information (as less-aspiring test-bound students often do), then they have amassed knowledge. This knowledge has useful meaning to them, but it does not provide for, in and of itself, an integration such as would infer further knowledge. Understanding is an interpolative and probabilistic process. It is cognitive and analytical. It is the process by which I can take knowledge and synthesize new knowledge from the previously held knowledge. The difference between understanding and knowledge is the difference between "learning" and "memorizing" Wisdom is an extrapolative and non-deterministic, non-probabilistic process. It calls upon all the previous levels of consciousness, and specifically upon special types of human programming (moral, ethical codes, etc.). It beckons to give us understanding about which there has previously been no understanding, and in doing so, goes far beyond understanding itself. It is the essence of philosophical probing. Analytical is data that has been processed in a way that makes it meaningful. It can be shown as the result of a query, either displayed on-screen, or printed on a report. Null is a value that is either missing or unknown. A null value represents neither zero nor blank, as they are actual values and can be meaningful in certain circumstances. A drawback to null values is that they cannot be evaluated by mathematical expressions. TERMINOLOGY Structure Related Terms • Table is the main structure in a relational database. It is composed of fields and records, the order of which is completely unimportant. It always represents a single, specific subject, which can be an object or an event. • Field (also known as a column or an attribute) is the smallest structure in a relational database. It represents a characteristic of the subject of the table. • Record (also known as a row or a tuple) is a structure within a table that represents a unique instance of the subject of the table. • View is a virtual table that is composed of the fields of one or more tables. It draws its data from the tables on which it is based. They are commonly implemented as saved queries. TERMINOLOGY Structure Related Terms In this example, the STUDENT INSTRUMENTS View is composed of fields taken from both the STUDENTS table and the INSTRUMENTS table. Data in the View is drawn from both tables simultaneously, based on matching values between the Student ID field in the STUDENTS table and the Student ID field in the INSTRUMENTS table. TERMINOLOGY Structure Related Terms Keys are special fields that serve a specific purpose within a table. A Primary key is a field that uniquely identifies a record within a table. A Foreign key is the field that is used to establish a relationship between a pair of tables. In the following example, Agent ID is the Primary key of AGENTS because it uniquely identifies each record in that table. Similarly, Client ID is the Primary key of CLIENTS because it also uniquely identifies each of the table’s records. Agent ID in the CLIENTS table is a Foreign key because it is used to establish a relationship between the CLIENTS and the AGENTS table. TERMINOLOGY Relationship Related Terms Relationships establish a connection between (at least) a pair of tables. This relationship exists when a pair of tables is connected by a Primary and Foreign Key. Types of Relationships One-to-One Exists between a pair of tables if a single record in the first table is related to one and only one record in the second table. TERMINOLOGY Relationship Related Terms One-to-Many Exists between a pair of tables if a single record in the first table is related to one or more records in the second table, but a single record in the second table can be related to only one record in the first table. This is the most common type of relationship. TERMINOLOGY Relationship Related Terms Many-to-Many Exists between a pair of tables if a single record in the first table can be related to one or more records in the second table, and a single record in the second table can be related to one or more records in the first table. Establishing a direct connection between these two tables is difficult because it will produce a large amount of redundant data in one of the tables. The CourseName could have Also been put into a separate Table and called with a CourseID To remove redundancy TERMINOLOGY Relationship Related Terms Types of Participation There are two types of participation that a table can have within a relationship: mandatory and optional. If records in Table A must exist before any records can be entered into Table B, then Table A’s participation within the relationship is mandatory. If not, it is considered optional. Each table in a relationship has a degree of participation, which is the minimum and maximum number of records in one table that can be related to a single record in the other table. Consider Agents and Clients tables. If we say that an agent should have at least one client but no more than eight, then the degree of participation for the Clients table is 1,8. TERMINOLOGY Integrity Related Terms Field = Column A field specification (also known as a domain) represents all the elements of a field. Each field specification has three types of elements: general, physical and logical. A field’s general elements include such items as field name, description and source table. Physical elements include items such as data type, length, and display format. Logical elements describe the values stored in a field, such as required value, range of values and default values. Data integrity refers to the validity, consistency and accuracy of the data in a database. The four types of data integrity are: • • • • Table-level integrity ensures that the field that identifies each record within the table is unique and is never missing its value. Field-level integrity ensures that the structure of every field is sound, that the values in each field are valid, consistent and accurate. Relationship-level integrity ensures that the relationship between a pair of tables is sound and that there is synchronization between the two tables whenever data is entered, updated or deleted. Business rules impose restrictions or limitations on certain aspects of a database based on the ways an organization perceives and uses its data. Phase 1 Discovery A Closer Walk-Through Phase 1 – Discovery OVERVIEW: Gather project information from your client to create a mission statement, mission objectives and site goals, and the data model that will provide information from the data. Based on your research and conversation(s) with the client, create a Strategic Brief document. Send a copy to the client and follow-up to confirm the completeness and accuracy of this scope document. A. ORGANIZE YOUR TEAM Get to know your team members by compiling a contact sheet with information from each member including an email address and a brief bio. Decide on a name for your team. Choose project roles for each phase of the design. Record this on the team info sheet. In order to facilitate the coordination of the team effort, each member of the team will act as a team-lead during a different phase of the project. As a group, decide who will act as teamlead during each phase. Choose a different team lead for each phase. For groups of four or more, your team may assign a co-lead role to two of the members. Discuss and decide on a process that your team will use to divide up the team tasks and report out to the team on your individual progress. You will have some regular team meeting time in class throughout the quarter. Phase 1 – Discovery Phase 1 – Discovery B. MEET WITH YOUR CLIENT Schedule a meeting with your team’s client between now and next week to discuss the database design. At least two members of your team need to attend the meeting. One team member should facilitate the meeting and one member should take notes at the meeting. Email a synopsis of the notes to the entire team and the client. Copy me on all email exchanges with the client. Before meeting with the client, develop a set of initial and follow-up questions to ask the client – send these questions to the client before the meeting and include your questions along with the client answers in your meeting notes. Be sure to request from the client all documents, forms, sample data, business rules, or comparable database examples that they can provide to help you understand their needs. Develop a Strategic Brief document (see example below in Part F) to begin your data modeling process. You’re your conversation with the client, draft a mission statement and set of objectives for the database project. Determine the informational questions, decisions, data processes, and potential subjects, characteristics, and relationships for your data model. Phase 1 – Discovery C. DEFINE YOUR PROJECT IN A STRATEGIC BRIEF Create/Refine a database Mission Statement and Objectives Creating a mission statement and a set of objectives will help to keep your data model focused on the core purpose of the project and the information that is needed to accomplish the purpose. The mission statement describes the purpose of the database project in the broadest terms. It answers the questions: • What is the project going to do? • Who is the project going to reach? • How is the project going to do it? • Why is the project needed? The mission statement should be no more than three or four sentences. Determine Objectives and Users: Create a master list of objectives, ranked by priority for your Strategic Brief. Objectives are results; they are specific, attainable and measurable. Some possible questions to ask the client to help determine the web application objectives are: • What is the purpose of the database for the business or organization? • What are the short and long-term goals for the project? • Who uses the database information? What different types of users are there? • Why do people need this project? Client Review Review the Strategic Brief with the client via an email exchange to confirm your understandings. Make adjustments as necessary based on the client’s feedback. Repeat this process until both you and the client are satisfied that the project is well-defined. Phase 1 – Discovery D. DEVELOP THE DRAFT DATA MODEL A clear understanding of the information needs and data processes will help ensure the completeness and effectiveness of the data design. Review the notes from the client meeting and supporting material to make a set of informational questions that describe information important to the project mission. List decisions, data processes, potential subjects, and their characteristics that seem to be important to the project mission and outcomes. This data model will form the basis of your database design. E. FINAL SUBMISSIONS FOR DISCOVERY (DUE MONDAY, APRIL 29) 1. 2. 3. 4. 5. The team agreement that includes a team name, ground rules, and goals for the team, along with contact information, roles, and bios for each team member. The typed synopsis of notes from the initial client meeting including the questions you asked, the client’s response and follow-up email confirmation with client. The supporting material provided by the client to help define the database project. A set of categorized questions and decisions that outline the information that the client intends to draw from the database. A Strategic Brief which includes the project mission statement, a set of objectives, and database users, the data processes, subjects, and their characteristics. THIS WILL CONSTITUTE THE DELIVERABLES SUBMITTED FOR PROJECT_01 IN STUDENT TRACKER It only has to be zipped and submitted once (preferably by the PHASE 1 LEAD or TEAM LEADER) 100 POINTS ALL TEAM DOCUMENTS SHOULD ALSO BE UPLOADED SEPARATELY TO THE TEAM SECTION IN ASANA F: Example of a Strategic Brief Interview Guidelines Participant Guidelines • • • Make the participants aware of your intentions. Let the participants know that you appreciate their taking part in the interview and that their responses to the interview questions are valuable to the overall design project. Make sure everyone understands that you are the official arbitrator if and when a dispute arises. Interviewer Guidelines • • • • • • • • • Conduct the interview in a well-lit room, separated from distracting noise, with a large table and comfortable chairs, and have coffee and munchies on hand. Set a limit of 10 people or fewer for each interview. Conduct separate interviews for users and management. When you have to interview several groups of people, designate a group leader for each group. Prepare your questions prior to the interview. If you're not very good at taking notes, either assign that task to a dependable transcriber for each interview or get the group's permission to use a tape recorder to record the interview. Give everyone your equal and undivided attention. Keep the pace of the interview moving. Always maintain control of the interview. Mission Statements Mission Statement Guidelines A well-written mission statement has the following attributes: • • • • It expresses its point succinctly and immediately. It avoids unnecessary statements or details and is well-defined. It avoids phrases or sentences that explicitly describe specific tasks. It makes sense to you (the database developer) and to those for whom you are designing the database. The immigrant research database will support Melissa Estelle’s PhD project on people born and raised in Ireland and now residing in US or Canada/ Washington State or British Columbia. With this research the client is trying to look for changes in people after migrating to Canada or America. Mission Objectives Mission Objective Guidelines A well-written mission objective has the following attributes: • • • It comprises a declarative sentence that clearly defines a general task and is free from unnecessary details. It expresses itself in general terms that are succinct, to the point, and unambiguous. It makes sense to you and to those for whom you are designing the database. 1. To substantiate client’s PhD project. 2. To be able to easily extract information on differences between Irish born/raised US and Canadian residents or citizens. 3. To design the database in such a way that they remain flexible for future expansion. TEAM PROJECT STRATEGIZE GROUPS To Do: • • • • • • • • • Team Name Team Member Info List (Names, Emails, Phone, Short Bio) Team Leader? Phase Leaders? Construct Email to Send to Client to Set Up Interview Time Construct of List of Potential Interview Questions Who Will Conduct the Interview? Interviewer? Note Taker? Working it Up in Team Site (or additionally something like Asana) Document Types and Backup Plan Projects and the Team Formations • Bothell Youth Court • Wants a small database to hold names/cases/dates that can push a reminder when a particular case is scheduled to come up. Two people will be using it, both with administer access • School of STEM (UW Bothell) • Current using an Excel spreadsheet to enter and track information and would love to have a database to do this instead • Scuba Club • Track members, member contact info, dive sites, dive site ratings, equipment, expenses, equipment rentals, status • Medication Tracker • Medications, types, dosage, times, contraindications, allergies, prescription dates 26 TEAMS TEAM A: Bothell Youth Court TEAM C: Scuba Club • • • • • • • • • Reiff Castillote * Elena Pavlovic Sean Probst Lara Ramey Eric Salman Deborah Engelmeyer # Sofia Khaouly David Arzumanov David Drake TEAM B: School of STEM TEAM D: Medications • • • • • • • • • • Jennifer Bronson Bill Crotteau Matthew Ngai Erika Savoy Katherine Kitzmiller Megan Atkinson David Carlin # Dino Cizmic Christopher Mack Kirk Schultz 27 TEAM WORK TEAM TIME: PHASE 1 Project Planning 28