views:

149

answers:

3

Hi guys!

so as title says, I would like to hear your advices what are the most important questions to consider and ask end-users before designing database for their application. We are to make database-oriented app, with special attenion to pay on db security (access control, encryption, integrity, backups)... Database will also keep some personal information about people, which is considered sensitive by law regulations, so security must be good.

I worked on school projects with databases, but this is first time working "in real world", where this db security has real implications.

So I found some advices and questions to ask on internet, but here I always get best ones. All help appreciated! Thank you!

+1  A: 

i would start with:

  • Please explain your business to me.
  • Which processes are you looking to automate or improve?
  • Do you have any reports you need to generate?
  • Do you need inputs to any other systems?
Randy
+1  A: 
  • use cases (google for that, it does not need to be drawings, text is fine)
  • inputs
  • outputs
  • static data
  • historical data

From there you derive the info you need to store, you apply 4th NF, and go ! Good luck ! 8-))

iDevlop
+2  A: 

Some other specifics besides what has already been said:

  • Do you have any Regulatory requirements for data access and storage (Sarbanes-Oxley and HIPAA come to mind)
  • Do you need to be able to audit record changes
  • What internal controls do you need reflected in the database
  • What business rules must be followed under what circumstances
  • How large to you expect the data to get - the larger the data store expected the more critical to design with performance in mind from the start
  • How flexible do you want the system to be (do you want to be able to add columns on the fly? OR add business rules) Be careful with this one, make sure the client understands that flexibilty often comes at the cost of performance.
  • Do you need a separate data warehouse for reporting?
  • How do you need the data populated? Will it come from an application, multiple applications, data imports or a combination?
  • What databases do you currently have licesnse for? Do you want to have this application use it?
  • Will different groups of users need differnt access?
  • How is the process currently being handled, can we have access to that database or see the current process in action. Observer for a minimum of one day, the client using the current system. Take extensive notes, you will learn many things no one wil think to tell you.
  • Do you need to migrate data from the old system
HLGEM
Hi! Thanx foe advices! Can you just explain me this one bit more : "What internal controls do you need reflected in the database"?Because I thaught you mean it on different types of user access, but i see you mention that in the end of the list?
Julia
Internal controls is an accounting term. It means the controls the company has designed into the system to prevent fraud. For instance, no one should be able to inititate and approve a purchase. This prevent people from setting up a fake company and creating fake orders to that company just to collect the money without providing a needed good or service. Internal controls are critical to any system that handles money and any programmer who is not familiar with the term who handles a financial system, needs to do some in depth reading about them or the system he or she designs will be at risk.
HLGEM