42
DATABASE DESIGN

DATABASE DESIGN. ERD Entity Relational Diagram (ERD) Visual display of tables and their relationships for a database Used for “Relational Modeling” 2

Embed Size (px)

Citation preview

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”

• Each product has to be INDIVIDUALLY listed3

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

• 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

Employees

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:

7

ARTISTS

ArtistName

Gender

SONGS

SongTitle

Length

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”oAnother person “Master”oAnother 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 Design1. 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.”

12instructors

programs

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

• http://www.youtube.com/watch?v=0lSLI7q-hVEStudent 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 ProfessorStud_Prof

Many to Many Relationships

Resolving Many to Many Relationships ByCreating 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) and Many to Many’s (M:M)

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

31

STYLE

STYLE ID STYLE NAME

1 SPORTY

2 SPORTY

3 DRESSY

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:

2. myitlab TRAINING:Access VOLUME 1- “Skill-Based TRAINING”

1. myitlab ASSIGNMENT:“EXPLORING series”

Access Chapter 1- GRADER PROJECT [HOMEWORK]