There are a number of important principles must be considered for any software application using a database.
- Availability
- Scalability
- Consistency
- Concurrency
- Atomicity
- Referential Integrity
- Network Latency
- Structured Object
- Performance
- Security
When building any application from scratch one must bear all these 10 steps before embarking on any development.
Developer tends to think database as a separate entity and outside the normal agile or development activities. For a project or development to be successful one must ensure the same due diligence must be carried out on database development as a project itself.
One of the common mistakes amongst developer is rolling out schemas from sprint to sprint. As application changes along with your business objects will change both will require agile style incremental development. One must do incremental changes rather than waterfall style changes.
How would you do incremental changes, for instance adding an extra column should consume no overheads but is it true. What it takes to add a single column in an incremental way.
Adding a single column would require a number of changes, firstly a field must be available in the business object. A field in the business object must be mapped to the database column.
Is this sufficient?
What happens to old rows in the table with a new column. How are you going to decide a default value?
We will need some kind of incremental schema. We may need to update all the old fields and other corresponding fields magically. All of these will require Maintainance and due diligence for production.
Another important and relevance is column security. How do we provide suitability or functionality for securing column? How do we provide restrictions?
How does the column relate to other column and more importantly to other tables in a schema? This is where referential integrity plays a role. If a new column affects another part of the table. All of these considerations and constraint needs to be in the place for agile database development.
Hence database development seems simple but a lot of items needs to be considered for correct and right development. We will discuss all the 10 items in future articles.
Please visit Business Integration Software to see various products using databases especially Online Exam Software.
Assessment Management Software
Multiple Choice Question Software