Yuriy Sultanaev on Database Design

Answers to database design questions by Yuriy Sultanaev, Ufa, Russia
Date: 3 January 2015

Please explain (or briefly describe) the general philosophy behind your database design approach.

     1. Study of the business processes of the customer
     2. Analysis of practice for the client
     3. Analysis of the document circulation
     4. Prepare the new database model
     5. The prototype program
     6. Adoption of the prototype program
     7. Development of a full functional
     8. Solving Customer Comments
     9. Preparation of the final release program
     10. Acceptance of the project by the customer

What is something you have seen done repeatedly in database design work done by others people which you find to be particularly annoying or detrimental?

     Most often, poor documentation, poor database design,
     Automatic naming of program objects.

Given that you are database specialist, how does what do you while creating your database architecture save clients time and/or money?

     The most valuable resource is time
     Savings on software - is the extra hours of work others employees

Where do you live?

     Ufa Russian city of Ufa Republic of Bashkortostan/

Briefly describe your pertinent work and/or educational background.

     Work-
     5 years Savings Bank
     3 years pharmaceutical company
     8 years Mortgage Agency

What are the industries you have the most experience working within?

     loans; finance

You have special expertise in database design. How is what you do different from what a generalist computer programmer might do when it comes to creating a database back end?

     - Using ORM
     - is harmful in large amounts of data and small projects

How is the database design work you do distinct from and also integrated with other aspects of overall software/technology systems?

     Creating the optimal structure of the database affects the complexity of all the other processes of writing software for accounting tasks.

What is the biggest example of a "rule" you routinely break? (Or another way of putting it is: what popular tradition are you most likely to depart from, if any?)

     Boyce-Codd normal form

What RDBMS have you used extensively, or are at least somewhat familiar with based on first-hand experience?

     MS SQL server, MS Access, Oracle 11g Apex, PostgreSql, MySQL.

Given an assignment to create a website from scratch for Company X, what RDBMS are you using? (website specs: principle table has 10,000 rows and will grow to 200,000 over next five years; admin back-end, general browsing, user logins; no more than 100 concurrent users)

     MySQL

What other technologies are you using for this website?

     MS SharePoint; ODOO 7-8; Wordpress; Oracle Apex.

What tools would you be using? (IDEs, code editors, database design tools, if any)

     MS Visual Studio; NetBeans

Table names: plural? singular? or something else? why?

     always a plural Primary key table name in the singular + ID

How do you name your primary identity fields?

     I always use surrogate keys ID_USER... etc.

Describe your relationship (if any) with WordPress?

     Professional use Wordpress. Do not like php. I do not write plug-ins. I can fix the code in ready plugin.

If you use stored procedures, how do you decide to use them or not use them? What are your alternatives?

     Rejection of the stored procedures only in lightly loaded projects.
     Stored procedures smear out the the application code so that people come up with ORM that operate poorly...

Why would a client who needs database design work done be making a wise move to hire you (if you're available)?

     I am a specialist in databases
     I have skills of designing complex systems
     I have experience in development of Large Live MS SQL MS Access
     Maybe I can be useful in your project