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


things to know when designing a new database


things to know when designing a new database

Author
Message
Sean Lange
Sean Lange
SSC Guru
SSC Guru (62K reputation)SSC Guru (62K reputation)SSC Guru (62K reputation)SSC Guru (62K reputation)SSC Guru (62K reputation)SSC Guru (62K reputation)SSC Guru (62K reputation)SSC Guru (62K reputation)

Group: General Forum Members
Points: 62253 Visits: 17954
ScottPletcher (1/22/2013)
Sean Lange (1/22/2013)
GilaMonster (1/22/2013)
Sean Lange (1/22/2013)
ScottPletcher (1/22/2013)
DiverKas (1/22/2013)
1) Do NOT let your C#/VB/ASP/Pascal guys design the database.
2) Do NOT let your DBA's design the database.
3) Hire a Data Architect.

Just saying. The first 2 groups have very biased views of how data should be structured for VERY different reasons, neither of which usually solves the entire problem.



#2 is NOT necessarily true -- it depends on the DBA. I have long-term experience in all phases of the design process.

Also, if you hire someone who's solely a Data Architect, then you have to hire an additional person to convert the logical model into a physical model.


Neither is #1. There is no rule that says a developer is unable to design a proper database because they are a developer.


I'm a developer (SQL mostly, not front end). I'd argue that I can design at least a passably good database.


Gail we are saying the same thing. I think anytime someone starts segregating abilities based on job title they are destined to get snowballed. I too am a developer and would like to think I could cobble something usable together.



Perhaps. But I would not want someone who had not been a full-time database designer or DBA at some point to head a db design. Based on my past experiences, (almost) pure developers can't seem to forget physical details long enough to do a proper logical design. Any who could do it properly would be the rare exceptions, not the normal rule.


I agree it would be the exception but the "rules" as posted sounded like absolutes and I disagree with that sentiment.

_______________________________________________________________

Need help? Help us help you.

Read the article at http://www.sqlservercentral.com/articles/Best+Practices/61537/ for best practices on asking questions.

Need to split a string? Try Jeff Modens splitter.

Cross Tabs and Pivots, Part 1 – Converting Rows to Columns
Cross Tabs and Pivots, Part 2 - Dynamic Cross Tabs
Understanding and Using APPLY (Part 1)
Understanding and Using APPLY (Part 2)
ScottPletcher
ScottPletcher
SSCoach
SSCoach (19K reputation)SSCoach (19K reputation)SSCoach (19K reputation)SSCoach (19K reputation)SSCoach (19K reputation)SSCoach (19K reputation)SSCoach (19K reputation)SSCoach (19K reputation)

Group: General Forum Members
Points: 19535 Visits: 7410
Sean Lange (1/22/2013)
ScottPletcher (1/22/2013)
Sean Lange (1/22/2013)
GilaMonster (1/22/2013)
Sean Lange (1/22/2013)
ScottPletcher (1/22/2013)
DiverKas (1/22/2013)
1) Do NOT let your C#/VB/ASP/Pascal guys design the database.
2) Do NOT let your DBA's design the database.
3) Hire a Data Architect.

Just saying. The first 2 groups have very biased views of how data should be structured for VERY different reasons, neither of which usually solves the entire problem.



#2 is NOT necessarily true -- it depends on the DBA. I have long-term experience in all phases of the design process.

Also, if you hire someone who's solely a Data Architect, then you have to hire an additional person to convert the logical model into a physical model.


Neither is #1. There is no rule that says a developer is unable to design a proper database because they are a developer.


I'm a developer (SQL mostly, not front end). I'd argue that I can design at least a passably good database.


Gail we are saying the same thing. I think anytime someone starts segregating abilities based on job title they are destined to get snowballed. I too am a developer and would like to think I could cobble something usable together.



Perhaps. But I would not want someone who had not been a full-time database designer or DBA at some point to head a db design. Based on my past experiences, (almost) pure developers can't seem to forget physical details long enough to do a proper logical design. Any who could do it properly would be the rare exceptions, not the normal rule.


I agree it would be the exception but the "rules" as posted sounded like absolutes and I disagree with that sentiment.



Again, my exception is only for someone who had 1+ years full-time experience doing database design.

Almost every developer I've ever met believes they can properly design a db; 99.9% of them have no real clue about how to do it properly, however.

Ask them one thing, like:: Give a sample "supertype" with "subtypes" :: and they're completely lost.

SQL DBA,SQL Server MVP(07, 08, 09) Prosecutor James Blackburn, in closing argument in the Fatal Vision murders trial:
If in the future, you should cry a tear, cry one for them [the murder victims]. If in the future, you should say a prayer, say one for them. And if in the future, you should light a candle, light one for them.
Sean Lange
Sean Lange
SSC Guru
SSC Guru (62K reputation)SSC Guru (62K reputation)SSC Guru (62K reputation)SSC Guru (62K reputation)SSC Guru (62K reputation)SSC Guru (62K reputation)SSC Guru (62K reputation)SSC Guru (62K reputation)

Group: General Forum Members
Points: 62253 Visits: 17954
ScottPletcher (1/22/2013)
Sean Lange (1/22/2013)
ScottPletcher (1/22/2013)
Sean Lange (1/22/2013)
GilaMonster (1/22/2013)
Sean Lange (1/22/2013)
ScottPletcher (1/22/2013)
DiverKas (1/22/2013)
1) Do NOT let your C#/VB/ASP/Pascal guys design the database.
2) Do NOT let your DBA's design the database.
3) Hire a Data Architect.

Just saying. The first 2 groups have very biased views of how data should be structured for VERY different reasons, neither of which usually solves the entire problem.



#2 is NOT necessarily true -- it depends on the DBA. I have long-term experience in all phases of the design process.

Also, if you hire someone who's solely a Data Architect, then you have to hire an additional person to convert the logical model into a physical model.


Neither is #1. There is no rule that says a developer is unable to design a proper database because they are a developer.


I'm a developer (SQL mostly, not front end). I'd argue that I can design at least a passably good database.


Gail we are saying the same thing. I think anytime someone starts segregating abilities based on job title they are destined to get snowballed. I too am a developer and would like to think I could cobble something usable together.



Perhaps. But I would not want someone who had not been a full-time database designer or DBA at some point to head a db design. Based on my past experiences, (almost) pure developers can't seem to forget physical details long enough to do a proper logical design. Any who could do it properly would be the rare exceptions, not the normal rule.


I agree it would be the exception but the "rules" as posted sounded like absolutes and I disagree with that sentiment.



Again, my exception is only for someone who had 1+ years full-time experience doing database design.

Almost every developer I've ever met believes they can properly design a db; 99.9% of them have no real clue about how to do it properly, however.

Ask them one thing, like:: Give a sample "supertype" with "subtypes" :: and they're completely lost.


Sadly it is not simply because they don't understand data modeling. Those same people could not identify a super class and subclass example in OOP either. Let's face it, there are far too many totally incompetent people in this field.

By your definition I have no real clue about how to go about data modeling properly. I would disagree with you there. Am I the best? Absolutely not. But to simply discount my ability because it was not my primary job focus for at least a year comes across as arrogant and misguided. A person and the knowledge they possess go beyond the job title.

_______________________________________________________________

Need help? Help us help you.

Read the article at http://www.sqlservercentral.com/articles/Best+Practices/61537/ for best practices on asking questions.

Need to split a string? Try Jeff Modens splitter.

Cross Tabs and Pivots, Part 1 – Converting Rows to Columns
Cross Tabs and Pivots, Part 2 - Dynamic Cross Tabs
Understanding and Using APPLY (Part 1)
Understanding and Using APPLY (Part 2)
dwain.c
dwain.c
SSCoach
SSCoach (17K reputation)SSCoach (17K reputation)SSCoach (17K reputation)SSCoach (17K reputation)SSCoach (17K reputation)SSCoach (17K reputation)SSCoach (17K reputation)SSCoach (17K reputation)

Group: General Forum Members
Points: 17699 Visits: 6431
Don't get me started! w00t

I do however wish to hear the further discussion. :-P


My mantra: No loops! No CURSORs! No RBAR! Hoo-uh!

My thought question: Have you ever been told that your query runs too fast?

My advice:
INDEXing a poor-performing query is like putting sugar on cat food. Yeah, it probably tastes better but are you sure you want to eat it?
The path of least resistance can be a slippery slope. Take care that fixing your fixes of fixes doesn't snowball and end up costing you more than fixing the root cause would have in the first place.


Need to UNPIVOT? Why not CROSS APPLY VALUES instead?
Since random numbers are too important to be left to chance, let's generate some!
Learn to understand recursive CTEs by example.
Splitting strings based on patterns can be fast!
My temporal SQL musings: Calendar Tables, an Easter SQL, Time Slots and Self-maintaining, Contiguous Effective Dates in Temporal Tables
ScottPletcher
ScottPletcher
SSCoach
SSCoach (19K reputation)SSCoach (19K reputation)SSCoach (19K reputation)SSCoach (19K reputation)SSCoach (19K reputation)SSCoach (19K reputation)SSCoach (19K reputation)SSCoach (19K reputation)

Group: General Forum Members
Points: 19535 Visits: 7410
I think what's arrogant is for a developer to assume that they have the professional skills of another a DA/DBA job when they've never done. Not sure why everyone assumes they can do what a DA/DBA does even w/ NO job experience; rather interesting phenomenon really.

Are there exceptions? I'm sure there are. But you can't set up rules that handle the 0.1% of exceptions.

I was a developer for several years, including OO (went to some OO design classes too). But I wouldn't presume to claim I'm currently qualified to head up a development project, OO or not. Or even a code design project; although I believe I could provide valuable input on code design, I'm not qualified to lead the process.

SQL DBA,SQL Server MVP(07, 08, 09) Prosecutor James Blackburn, in closing argument in the Fatal Vision murders trial:
If in the future, you should cry a tear, cry one for them [the murder victims]. If in the future, you should say a prayer, say one for them. And if in the future, you should light a candle, light one for them.
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