steps to design database

Posted on 2005-05-04
Medium Priority
Last Modified: 2013-12-03
my boss ask me to make new procedure for the database system development start from receiving a request from client until
the end of designing the database so i read some reference books but still not satisfied
so what is your suggestion about the best steps or procedure we have to follow ?

Question by:rbaian

Expert Comment

ID: 13925858

You can first make a list of all the entities that will be there in the application
then list out the attributes of each entity and create relationship between the same
This will bring you close to the DB diagram

LVL 66

Expert Comment

by:Jim Horn
ID: 13926879
Hi rbaian,

If you have never created a database before, I recommend contracting this out to an experienced DBA/Programmer, and then studying their design/code as a tutorial.  

Hope this helps.
LVL 13

Expert Comment

ID: 13927275
jimhorn is correct, I'm continually amazed at how often these types of questions come up...
...who are these clients, would they ask a nun who had never driven a car or looked at an engine to change the alternator on their car....?

Sorry rbaian, but to undertake the development of a database in the circumstances you describe you need to be educated in their concepts and have experience of database development. Learn how a database should be designed (to 3rd normal form at least), design and develop databases and learn through practice. The knowledge transfer process jimhorn suggests is a great way to learn...

The actual development lifecycle for databases should follow the standard stages common to all IT related projects -- analysis, requirements definition, design / documentation, development, test (unit,system,user)....the detail of the stages will require database development specific tasks to be undertaken...

good luck


NFR key for Veeam Agent for Linux

Veeam is happy to provide a free NFR license for one year.  It allows for the non‑production use and valid for five workstations and two servers. Veeam Agent for Linux is a simple backup tool for your Linux installations, both on‑premises and in the public cloud.


Expert Comment

ID: 13932495
To actually answer your question, here is how I would approach designing a database for a client.
1. Meet with client to ascertain their requirements. Make sure they have a realistic expectation and you can design something that will do what they want. Important details at this stage are defining which database technology they are going to use, system requirements that will need to be met and ensuring you have the skillbase to service their particular needs. In this first meeting if you come to an agreement that you can do the job they want, then you can get the basic database elements down ie: tables, relationships and functionality requirements.
2. Take the information from the first meeting and develop a first draft of the database design, making sure you follow sound database development strategies ie: normalisation to 3nf, data dictionaries and so on. BG above roughs out the process in his last paragraph. Dont hesitate to contact the client for any clarification of requirements.
3. Once you have the first draft finished, it is time to have another meeting with the client. Go over the draft with them. If by some miracle they are completely satisfied with the design, congratulations are in order, the database design job is finished. If things go as normal, you will have a number of items that will need to be worked on.
4. Repeat steps 2 and 3 until you have a complete database design you and the client can live with.


Expert Comment

ID: 13933086
Everyone that posted has good and solid advice. Listen to it. I've seen soooo many database designs that were an absolute nightmare for me to go in and redesign.

Much of what you are asking for will vary significantly from client to client, what technology you have or can have, what the developers skill set is, how much time you have to devote, how much money is the client willing to spend, online or offline, central or distributed, is it relational or object, how much does speed matter, is LDAP a more effective solution, even how many people will be using it. All of this and much more can play a small or large part in your design.

I've seen a simple flat single table meet the needs for a client (not something that I suggest) and I've seen extreamly elaborate solutions for the most demanding of clients. The questions you ask and the answers you interpret from the client will be critical.

My best advice is know what your company can do and what it already has done, learn the database tools that you will be working with, ask a lot of good questions, and consult these experts a lot (they're really good people). And if you have the luxury, even if you have to push the issue, take jimhorns advice and subcontract it.


Author Comment

ID: 13933621
you still not get the point or may be my question is ambiguous.i'm talking about an organization system to develop a database.
as programmer i'v done alot of database but it does't mean that i can build or organize something like system development life cycle for my company.
i hope now you understand

Accepted Solution

infolurk earned 1000 total points
ID: 13941738
All is becoming clear.
I have tried to give you a rough outline of a procedure that I would use for database development. In no way is it comprehensive, but I thought it might get you started down the right track.
I initially thought jim and bg were being a bit harsh, now it is becoming clear they were being realistic.
As Tag says, "Everyone that posted has good and solid advice."
If you are expecting a complete document detailing database system development, I suggest you follow jimhorns advice. Im sure you are aware that a system development life cycle procedure document is potentially a complex bit of work.
Dont expect to get your technical documents for free here. You may get some pointers, but you will have to do the bulk of the work yourself.

Good Luck

Featured Post

NFR key for Veeam Agent for Linux

Veeam is happy to provide a free NFR license for one year.  It allows for the non‑production use and valid for five workstations and two servers. Veeam Agent for Linux is a simple backup tool for your Linux installations, both on‑premises and in the public cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This post looks at MongoDB and MySQL, and covers high-level MongoDB strengths, weaknesses, features, and uses from the perspective of an SQL user.
In today's business world, data is more important than ever for informing marketing campaigns. Accessing and using data, however, may not come naturally to some creative marketing professionals. Here are four tips for adapting to wield data for insi…
This is a high-level webinar that covers the history of enterprise open source database use. It addresses both the advantages companies see in using open source database technologies, as well as the fears and reservations they might have. In this…
If you’ve ever visited a web page and noticed a cool font that you really liked the look of, but couldn’t figure out which font it was so that you could use it for your own work, then this video is for you! In this Micro Tutorial, you'll learn yo…
Suggested Courses

840 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question