SQL Clone
SQLServerCentral is supported by Redgate
 
Log in  ::  Register  ::  Not logged in
 
 
 


A Broken Data Model


A Broken Data Model

Author
Message
john.riley-1111039
john.riley-1111039
SSC-Enthusiastic
SSC-Enthusiastic (163 reputation)SSC-Enthusiastic (163 reputation)SSC-Enthusiastic (163 reputation)SSC-Enthusiastic (163 reputation)SSC-Enthusiastic (163 reputation)SSC-Enthusiastic (163 reputation)SSC-Enthusiastic (163 reputation)SSC-Enthusiastic (163 reputation)

Group: General Forum Members
Points: 163 Visits: 204

Years ago I was on a late night flight which made a brief stop in DC and ended in Newark, NJ. At Newark, they woke everyone up on the plane including the young soldier in a nearby seat who was supposed to get off in DC. No one noticed, no one woke him, and suddenly he was dumped in a strange city late at night.


Cabin crew count the passengers after boarding - surprised they didn't notice the numbers didn't tally.
Steve Jones
Steve Jones
SSC Guru
SSC Guru (61K reputation)SSC Guru (61K reputation)SSC Guru (61K reputation)SSC Guru (61K reputation)SSC Guru (61K reputation)SSC Guru (61K reputation)SSC Guru (61K reputation)SSC Guru (61K reputation)

Group: Administrators
Points: 61837 Visits: 19099
Mike Dougherty-384281 (5/9/2013)

However given that so much of the airline industry relies on systems that were developed decades ago, perhaps I shouldn't be surprised.


Are you implying that old code is inherently inferior to modern code?

No.

...
That the expected use case(s) [normal behavior] works smoothly as frequently as it does I think deserves some kudos.


It does, and I should have pointed out how well things seem to work.



...
(that maybe didn't anticipate 'modern' craziness)

I'm not trying to be an apologist for crufty old code. However, in some cases old code survives as long as it does because it works so well there's no reason to risk system stability by replacing it with the flavor of the month.


It's not that the code is old; it's what you referenced. Modern craziness, and new requirements exist. We've shoehorned some of those features in there, and that causes issues. We've also scaled. Code doesn't always scale, as much as we'd like it to.

Follow me on Twitter: @way0utwest
Forum Etiquette: How to post data/code on a forum to get the best help
My Blog: www.voiceofthedba.com
Steve Jones
Steve Jones
SSC Guru
SSC Guru (61K reputation)SSC Guru (61K reputation)SSC Guru (61K reputation)SSC Guru (61K reputation)SSC Guru (61K reputation)SSC Guru (61K reputation)SSC Guru (61K reputation)SSC Guru (61K reputation)

Group: Administrators
Points: 61837 Visits: 19099
skumar 5499 (5/9/2013)
Interesting example - but some time what we miss out is the fact - Model is not broken, its because we could not model it correctly due to lack of standards - some facts to know!!!


Semantics. It's still broken. Not because it wasn't built well, though that could be it. It's broken certainly because of change.

Follow me on Twitter: @way0utwest
Forum Etiquette: How to post data/code on a forum to get the best help
My Blog: www.voiceofthedba.com
Revenant
Revenant
SSCertifiable
SSCertifiable (7.3K reputation)SSCertifiable (7.3K reputation)SSCertifiable (7.3K reputation)SSCertifiable (7.3K reputation)SSCertifiable (7.3K reputation)SSCertifiable (7.3K reputation)SSCertifiable (7.3K reputation)SSCertifiable (7.3K reputation)

Group: General Forum Members
Points: 7298 Visits: 4857
TravisDBA (5/9/2013)
Most of the airline industry is strapped for cash as it is and struggling just to stay alive. You don't seriously think they have the money or time and energy to to put in state of the art booking systems do you? Of course not, they are using legacy out of date systems that are probably 10-15 years old as you stated. This should not surprise anyone. :-D

Make that age 30-40 years. SABRE was considered old when I was doing a project for them 23 years ago.
Miles Neale
Miles Neale
Hall of Fame
Hall of Fame (3K reputation)Hall of Fame (3K reputation)Hall of Fame (3K reputation)Hall of Fame (3K reputation)Hall of Fame (3K reputation)Hall of Fame (3K reputation)Hall of Fame (3K reputation)Hall of Fame (3K reputation)

Group: General Forum Members
Points: 3026 Visits: 1694
Steve Jones - SSC Editor (5/9/2013)
[quote]
... We've shoehorned some of those features in there, and that causes issues.


The bane of developers and their system, shoehorning. I have learned to dislike this process over the years. But a developer cannot stop it from happening. We cannot even slow it down. Many think it is cheap and easy but there is a cost somewhere in the process where others or you yourself will have to pay.

After years of use and resurfacing or shoehorning, systems start to show the results of the series of compromises that have been made. Like using a pair of pliers as a hammer you are going to get hurt before it is over, and you had best watch out for it will in fact be wrong.

Thanks Steve! You helped me get off a late afternoon vent :-)

M.

Not all gray hairs are Dinosaurs!
jay-h
jay-h
SSCommitted
SSCommitted (1.9K reputation)SSCommitted (1.9K reputation)SSCommitted (1.9K reputation)SSCommitted (1.9K reputation)SSCommitted (1.9K reputation)SSCommitted (1.9K reputation)SSCommitted (1.9K reputation)SSCommitted (1.9K reputation)

Group: General Forum Members
Points: 1873 Visits: 2337
Miles Neale (5/9/2013)
Steve Jones - SSC Editor (5/9/2013)
[quote]
... We've shoehorned some of those features in there, and that causes issues.


The bane of developers and their system, shoehorning. I have learned to dislike this process over the years. But a developer cannot stop it from happening. We cannot even slow it down. Many think it is cheap and easy but there is a cost somewhere in the process where others or you yourself will have to pay.

After years of use and resurfacing or shoehorning, systems start to show the results of the series of compromises that have been made. Like using a pair of pliers as a hammer you are going to get hurt before it is over, and you had best watch out for it will in fact be wrong.

Thanks Steve! You helped me get off a late afternoon vent :-)

M.




Shoehorning is, unfortunately, not just inevitable, but necessary. Unlike the textbook computer science world where applications are planned, built, and used, and redesigned when new requirements arise, it is simply not possible to rip everything out and rethink stuff when requirements change. Organizations and societies function on continuity and consistency (as much as possible); consider the importance of precedent in the legal world. Existing systems must be preserved, at least until requirements change so much that it is necessary to make changes along with all the disruption they cause are justified.

When you want a computer to behave in a different way, you simply load new software. When an organization or society has to behave in a different way, it's a much more complex problem

...

-- FORTRAN manual for Xerox Computers --
Mike Dougherty-384281
Mike Dougherty-384281
SSC-Addicted
SSC-Addicted (454 reputation)SSC-Addicted (454 reputation)SSC-Addicted (454 reputation)SSC-Addicted (454 reputation)SSC-Addicted (454 reputation)SSC-Addicted (454 reputation)SSC-Addicted (454 reputation)SSC-Addicted (454 reputation)

Group: General Forum Members
Points: 454 Visits: 944
jay-h (5/10/2013)

Shoehorning is, unfortunately, not just inevitable, but necessary. Unlike the textbook computer science world where applications are planned, built, and used, and redesigned when new requirements arise, it is simply not possible to rip everything out and rethink stuff when requirements change. Organizations and societies function on continuity and consistency (as much as possible); consider the importance of precedent in the legal world. Existing systems must be preserved, at least until requirements change so much that it is necessary to make changes along with all the disruption they cause are justified.

When you want a computer to behave in a different way, you simply load new software. When an organization or society has to behave in a different way, it's a much more complex problem


That is true. If the original plan accepts this truth, then it can be incorporated into the design in the first place. A good schema is surprisingly resilient to new features. If real-world objects are modeled correctly (not just normalization, but well-considered objects) then the kinds of things people might request later are typically extensions to the well-considered schema.

I've spend this week trying to "shoehorn" new features into a schema that was built to solve a very specific problem in a very specific way... and now that new assumptions have been introduced the fragile/brittle process is already crumbling. I've spent more time making new wine fit into old skins than it would take to start over completely.

... Unfortunately, management is typically frightened by "new build" and assumes that "we already have 90% done, reuse that investment" and we spend all our time debugging leaks in the design.
Miles Neale
Miles Neale
Hall of Fame
Hall of Fame (3K reputation)Hall of Fame (3K reputation)Hall of Fame (3K reputation)Hall of Fame (3K reputation)Hall of Fame (3K reputation)Hall of Fame (3K reputation)Hall of Fame (3K reputation)Hall of Fame (3K reputation)

Group: General Forum Members
Points: 3026 Visits: 1694
jay-h (5/10/2013)
Miles Neale (5/9/2013)
Steve Jones - SSC Editor (5/9/2013)
[quote]
... We've shoehorned some of those features in there, and that causes issues.


The bane of developers and their system, shoehorning. I have learned to dislike this process over the years. But a developer cannot stop it from happening. We cannot even slow it down. Many think it is cheap and easy but there is a cost somewhere in the process where others or you yourself will have to pay.

After years of use and resurfacing or shoehorning, systems start to show the results of the series of compromises that have been made. Like using a pair of pliers as a hammer you are going to get hurt before it is over, and you had best watch out for it will in fact be wrong.

Thanks Steve! You helped me get off a late afternoon vent :-)

M.




Shoehorning is, unfortunately, not just inevitable, but necessary. Unlike the textbook computer science world where applications are planned, built, and used, and redesigned when new requirements arise, it is simply not possible to rip everything out and rethink stuff when requirements change. Organizations and societies function on continuity and consistency (as much as possible); consider the importance of precedent in the legal world. Existing systems must be preserved, at least until requirements change so much that it is necessary to make changes along with all the disruption they cause are justified.

When you want a computer to behave in a different way, you simply load new software. When an organization or society has to behave in a different way, it's a much more complex problem


Jay - I cannot argue with the truth, however a better approach would be to take at least enough time to see if the data model and the system can be altered cheaply without the compromise that shoehorning brings. Once the shoehorning happens and say unedited unstructured text describing something in added to the name or address filed then all control of that data is lost and the data manager or analyst later who has to clean up the at mess finds that it is far more costly and faces the loss of what could have been good data.

I have seen entire databases corrupted into almost unworkable and unusable collections of data that reduce in value compromise by compromise and finally fail to perform. Management will often then look at the developer and say "Well Ted use to make this work, why can't you???" They do not understand that Ted made the last compromise in the model that brought the entire process to the point of failure and fused the system into a convoluted mess.

BUt I cannot disagree with the point that it happens and most think it is great because for the bottom line it costs little for this quarter or this year, and it can happen quickly. The unfortunate thing is that there is an end to the compromises a system can bear.

M.

Not all gray hairs are Dinosaurs!
Go


Permissions

You can't post new topics.
You can't post topic replies.
You can't post new polls.
You can't post replies to polls.
You can't edit your own topics.
You can't delete your own topics.
You can't edit other topics.
You can't delete other topics.
You can't edit your own posts.
You can't edit other posts.
You can't delete your own posts.
You can't delete other posts.
You can't post events.
You can't edit your own events.
You can't edit other events.
You can't delete your own events.
You can't delete other events.
You can't send private messages.
You can't send emails.
You can read topics.
You can't vote in polls.
You can't upload attachments.
You can download attachments.
You can't post HTML code.
You can't edit HTML code.
You can't post IFCode.
You can't post JavaScript.
You can post emoticons.
You can't post or upload images.

Select a forum

































































































































































SQLServerCentral


Search