DATABASE DESIGN ERD • Entity Relational Diagram (ERD) • Visual display of tables and their relationships for a database • Used for “Relational Modeling” 2 ERD cont. • SQUARES indicate TABLES • LINES between them indicate the different relationships • “FEET” at end of line, indicates a “MANY” relationship • -1 CUSTOMER has MANY “receipts” • -1 STAFF MEMBER sells MANY “receipts” • -1 PRODUCT can go into many different “receipts” 3 • Each product has to be INDIVIDUALLY listed ERD cont. • IF I wanted to know who sold me the order, I have to go to the receipt (order ) , in the “RECEIPT” table, I’ll find who the STAFF MEMBER is who sold me that receipt • IF I wanted to know what product a CUSTOMER has ordered, I have to go to the receipt (order ), in the “PRODUCT” table • -NO DIRECT relationship BETWEEN : • CUSTOMER & STAFF, or • CUSTOMER & PRODUCT 4 What are Tables or Entities • Used to represent things in the “real world” that is of significant interest to the user • i.e. “EMPLOYEES” might be an “Entity” in a company database Employees • NOUNS in a “Business Narrative” • each table is called an “entity” and the columns are referred to as an “attribute”. • within a table , each row is called a “record” and it represents 1 particular instance of its “entity” (not unlike the flat file). 5 Entities Continued • Another example: • A database regarding music • Artist & Song are both tables • “Performs” is the relationship (VERB) (usually is a “supporting document” which explains the relationship) 6 Entities and Their Attributes • “Entities” represent something of importance • “Entities” are made up of several “Attributes” (the columns), which describe the tables: ARTISTS SONGS ArtistName SongTitle Gender Length 7 Entities Summarized • Each ENTITY is made up of rows and columns • Columns are called fields or attributes of a database • Rows are called records or an instance of an entity • If you have repetitive VALUES to 1 attribute, —create a: “JOINER TABLE” or “LOOKUP TABLE” • make this attribute a “Foreign” key • Create another table with same attribute • i.e. a: “Shoe Table” with “colours” • “Colours” will be a “Foreign” key, here: with “ColourID” • primary key in a new table called: colours, with “ColourID” • 8-10 attributes per TABLE, after that create another table 8 Entities Summarized cont. • OR: When a table has the SAME VALUE REPETITIVELY for that attribute, you might need a “LOOKUP TABLE”: 1. People might misspell, the value, then you can’t do a: SEARCH i.e. LEVEL OF EDUCATION “Masters” What if 1 person spells it: “Masters” o Another person “Master” o Another person Masters of Education 2. You will have multiple occurences of 1 VALUE which takes up too much space in your database 9 Steps in Database Design 1. Complete a “Needs Assessment” (note: this is a huge process that is not covered in this course) • Basically, you speak with end users, managers, existing documents and think “outside the box” • If, in the design of the database, there is multiple occurrences of data (think of our “gender” example) this is an indicator that another table should be created. 2. Create a “Business Narrative” 3. Identify entities 4. Identify attributes & keys 5. Identify relationships 10 Business Narrative • Vital link between database designer and the end users • Purpose is to make clear the “data requirements” • The story, business rules, purposes of database; what kind of info it will hold • Will have to go over the DESIGN multiple times/days to make sure the DESIGN is correct • Get other people/users to comment on design • Example: • “Algonquin college employs many instructors to deliver various programs comprised of many different courses. “ 11 Starting an ERD • Identify the “entities” • Look at NOUNS of the “Business Narrative” “Algonquin college employs many instructors to deliver various programs comprised of many different courses.” programs 12 instructors courses When the list of Entities Seems Complete • Ask about each “entity”: 1. Is it significant? • List only entities that are important to your database users and that are worth the trouble and expense of computer tabulation. 2. Is it generic? • List only types of things, not individual instances • “EMPLOYEES”, “INSTRUCTORS” are generic of many different instances—we don’t say “Joe” 3. Is it fundamental? • List only entities that exist independently and do not need something else to explain them. • “Courses”-explains itself, you don’t need further elaboration 13 RELATIONSHIPS Three Basic Types of Relationships • One to One (1:1) • One to Many (1:M) • Many to Many (M:M) • The 1 is the “PARENT”, and the M is the “CHILD” • Called the CARDINALITY of the relationship • The cardinality indicates the MAXIMUM number of RELATIONSHIPS between the entities, • Whenever you see: “MANY”—this will be the FOREIGN KEY One to One Relationships • 1:1 relationships exists when a single record in one table has 1 and only 1 corresponding record in another table, and vice versa • VERY RARE • When you created a table for something, when it really should only have been a “field” • The 1 should really have been an “attribute” of the other (table/entity) an attribute IMPROPERLY DEFINED as an entity • i.e. 1 customer, 1 address • “Address” should have been the attribute of the “Customer” table One to One Example • A voter can cast only one vote in an election. • A ballot paper can belong to only one voter. • So there will be a 1:1 relationship between a Voter and a Ballot Paper. Voter Ballot One to Many Relationships • MOST COMMON • 1:M or M:1 • Relationship exists when a record can relate to 1 OR MORE records in a 2nd table but.. • A record in the 2nd table can ONLY relate to 1 record in the 1st table One to Many Example • A person can own more than one car. A car can only have one owner. Owner Vehicle Many to Many Relationships • M:M • Relationship exists when 1 record in either table can relate to more than 1 record in the other table • These should be eliminated • 2 related “PARENT” tables, but their relationship is NOT “direct” • Instead, it needs to be related through an additional “CHILD” table Many to Many Example • A student can have more than one professor; the same professor can have many students Student • http://www.youtube.com/watch?v=0lSLI7q-hVE Professor Resolving Many to Many • M:M is not allowed, as an attribute could have more than 1 value: • A “Multi-Valued Attribute” • Difficult to generate reports, or do searches • Would have to repeat attributes multiple times • Instead, we create a “JUNCTION” or “JOINER ENTITY” • The name of the joiner entity is often a COMBINATION of the 2 entities Student Stud_Prof Professor Many to Many Relationships Resolving Many to Many Relationships By Creating A Junction Or Joiner Entity • http://www.youtube.com/watch?v=NvrpuBAMddw SHEETS OF ICE • 1 arena with many sheets • ARENA ID-primary key in ARENA table • Add a FOREIGN KEY to SHEETS OF ICE (AREN_AID) • Can a sheets of ice belong to many arenas? NO—so we know it’s a one-to-many • TEAMS table-PRIMARY KEY: TEAM ID to PLAYERS table FOREIGN KEY: TEAM ID Relationship Review Normalization • Refining the ERD • Task of analyzing entities and the relationships created have been formalized into a process called normalization. • Should resolve all your relationships to One to Many (1:M) relationships • Eliminate all One to One’s (1:1) (M:M) and Many to Many’s Sample Business Narrative • CD Collection example • I have many cd’s by various artists. I like all types of music 28 Sample Business Narrative • Courses example: • A course can have many different learning objectives and each learning objective has various examples and a method of testing. 29 Sample Business Narrative • New Home Builders example: • Bamarack is a builder of new homes in the Ottawa area. They subcontract all the work that needs to be completed for the build of a new home. Each subcontractor has a specialized trade. 30 We Build a Business Narrative • Create a business narrative for your shoe collection at home STYLE STYLE ID STYLE NAME 1 SPORTY 2 SPORTY 3 DRESSY 31 Attributes for Our Shoe Scenario • Identify the attributes for all entities identified for our shoe inventory database 32 Selecting Attributes • Attributes are the fields/columns that describe an entity • Attributes can be: • A Characteristic • A Quality • A Feature • A Fact • An attribute is a “non-decomposable” piece of information about an entity • Can’t be broken down any further, only 1 single value per column • i.e. NAME—last name, 1st name • Attribute “Naming Conventions” • Single word (or more than 1 word with an underscore (no spaces) • Unique • Can’t be a reserved word” • i.e. “Number”, “Date” ( these are date types), OR name of column can’t be same as name of table 33 Attributes • Identify the entity and attributes for the following business narrative: • ABC Property Management Inc has a building with 20 units. Some are rented, some are vacant. Some are 1 bedroom, some are 2 bedrooms. The rent varies. ABC Property Management Inc keeps track of the tenant and lease information 34 • ONLY WATCH UNTIL 5 minutes 31 seconds (until it mentions: “QUERYSMITH”) • http://www.youtube.com/watch?v= Y-bvjtYgRVU 35 REMOVE SORT • HOME tab, in the SORT & FILTER group, click the REMOVE SORT button: FILTER BY SELECTION in a “TABLE” • HOME > SORT & FILTER group > click on the FILTER icon > • To FILTER: • Click on the drop-down arrow on the COLUMN HEADING (field) you want to filter • Select or de-select the VALUES you want to filter NUMBER FILTERS • Click on the drop-down arrow on the COLUMN HEADING (field) you want to filter • NUMBER FILTERS > select one of this options: • When you select “Less Than” or • “Greater Than”, by default it will • Also contain “Equal To”, so key in • The next number UP (for GREATER than), or The next number DOWN (for LESS than) • I.E. If you want >200, you would have to key in >201 (as it contains “equal to”, and will flag “200” also) FILTER BY FORM • SORT & FILTER group • ADVANCED button • FILTER BY FORM FILTER BY SELECTION in a “QUERY” • To filter all the rows in a table that contain a value that matches a selected value in a row • Right-click the VALUE you want to filter. > select: “EQUALS” the specific value you want • IF A FILTER IS ALREADY APPLIED: • HOME tab, > SORT & FILTER group, > Advanced, > click: CLEAR ALL FILTERS. ADDING A “TOTAL” ROW IN A QUERY • QUERY TOOLS DESIGN tab, > SHOW/HIDE group, click the TOTALS button • In the TOTAL row below the AMOUNT field, click the drop-down arrow and select: MIN. • DESIGN tab, > RESULTS group, > RUN button. • VIEW the query in DESIGN view HYBRID: MYITLAB • MYITLAB HOMEWORK: 1. myitlab ASSIGNMENT: “EXPLORING series” Access Chapter 1- GRADER PROJECT [HOMEWORK] 2. myitlab TRAINING: Access VOLUME 1- “Skill-Based TRAINING”