Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7626195
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 31, 20262026-05-31T05:17:36+00:00 2026-05-31T05:17:36+00:00

AdventureWorks tables have Insert/Update/Delete anomalies. Isn’t that considered bad design? Let’s take for example

  • 0

AdventureWorks tables have Insert/Update/Delete anomalies. Isn’t that considered bad design?

Let’s take for example following table.

Sales.SalesReason(SalesReasonID, Name, ReasonType, ModifiedDate)  

where ReasonType is of type nvarchar(50)

Shouldn’t we have another table for ReasonType so the model would look like this:

SalesReason(SalesReasonID, Name, ReasonTypeId, ModifiedDate)  
ReasonType(ReasonTypeId, Name)

This way when doing update of name of ReasonType the change should be done only on one record (prevent update anomaly). Also, it will prevent delete/insert anomalies by keeping available types in db disregarding of whether there are actual data related to them.

Can I have your thoughts on this matter?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-31T05:17:37+00:00Added an answer on May 31, 2026 at 5:17 am

    Removing ReasonType to another table wouldn’t improve anything. Presumably you would still have one ReasonTypeId per ReasonType so you still have the same potential number of updates to do. I guess you are assuming that you would need to update ReasonTypeId less frequently than ReasonType. Without knowing more about the business requirements that’s just a possibility but it doesn’t have anything to do with solving the type of “update anomaly” that database design theory is usually concerned with.

    Consider the table from a normalization theory point of view. If the dependencies are:

    {SalesReasonID}->{Name}
    {SalesReasonID}->{ReasonType}
    {SalesReasonID}->{ModifiedDate}
    

    and if SalesReasonID is the only key then the table is already in Fifth Normal Form. So it doesn’t require any further decomposition.

    The Relational Database Dictionary has this to say about the term “update anomaly”:

    A somewhat old fashioned term, never very precisely defined, for the
    kind of thing that can go wrong in a less than fully normalized
    database

    Carlo Zaniolo says:

    no clear-cut description of anomalies can be given without knowing the
    operations envisioned by the user

    (ACM Transactions on Database Systems, Vol. 6, No. 1, March 1981)

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Inside the AdventureWorks database we have Individuals, Contacts and Customers. These 3 tables are
I have a SQL and VS 2008 web application that I need to capture
Why tables in AdventureWorksLT have both a PK column and a rowguid column? Is
Let me expose my question : I have a root site, with a masterpage,
I've just begun diving into data warehousing and I have one question that I
I have a simple query like this.. USE AdventureWorks; GO SELECT DaysToManufacture, AVG(StandardCost) AS
I have a simple WCF project that uses the Entity Framework to access the
I'm working on the adventureworks example database. I have a table with employee's, which
I have this mapping ( it comes from adventureworks since I used it in
EDIT : Let's try this again. This time I've used the AdventureWorks sample database

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.