What is Database Application Development?
90% of software programs let users save information in some ways, shapes or forms, be it as simple as an address book storing first name, last name, and phone number or as complicated as a an inventory management system keeping track of products, transactions, returns, customers, and vendors. Having a database for information storage becomes a necessity.
In the old days, some programs are storing data within themselves in a proprietary format but as the adoption of standard SQL (Structured Query Language) becomes wider, more relational database management systems (RDBMS) have been developed. Database server stores and provides access to data by client requests. The data residing in a database can be accessed by multiple applications or users. Database server receives requests from the client and processes the requests and returns the relevant data in a secured manner.
Here are some of the advantages of using a RDBMS:
- Data independence and efficient storage
- Data integrity and security
- Concurrent access and crash recovery
- Reduced application development time
Please note that some applications are storing data within Excel spreadsheets or Word documents; those are file based storage which can only be modified by a single user at one time and are not considered to be RDBMS. It does not provide good security or data integrity validation measures.
What are the different types of database management systems (DBMS)?
Here are some of the more commonly used database systems.
Microsoft Access, being a single-file-based database, stores all database tables, queries, forms, reports, macros, and modules in its Jet database. When used directly both as a front-end and back-end, users usually open the database across the network and is not very efficient when multiple users are modifying data.
MS Access can also be used as backend data storage only; however, it is not ideal for simultaneous usage, which is typical in a web-based setting. MS Access 2010 database is limited to 2 GB. It can be password-protected and encrypted as a file, but it does not provide robust security such as table or row permissions and it does not support Windows Authentication.
With Microsoft Access 2010, it is possible to extend it into the web by hosting it on SharePoint 2010. From there, certain portions of an Access database can be run over the web. Forms and reports that don't have VBA code can run in that environment and expose data to non-Access users. They can also have custom behavior through the use of macros which are significantly improved over past versions. For some situations, this may be sufficient.
MySQL is a very popular open source database; over the years, it has grown to include features which were only available commercially. It supports ACID transactions, replication, partitioning, stored procedures, triggers, etc. This is a good choice if the project budget is a concern and requirements only extend to storing data for the most part. MySQL’s job schedulers, query optimization, data auditing capabilities are comparatively weaker than commercial databases; and it has no concept of roles or external authentication.
Oracle is one of the most highly used RDMS in Fortune 100 companies, supporting thousands of transactions per second on multiple platforms, such as Windows, UNIX, and Linux. Its biggest contender is Microsoft SQL Server and with its latest versions, the feature set has come closer and closer to Oracle’s. In today’s environment, business decision between the two usually comes down to existing infrastructure, personnel skill set, performance and availability needs, and licensing cost.
In Oracle DBMS, data is accessed using SQL. These SQL commands can be embedded in other languages or could be executed directly as scripts. Furthermore, it can execute stored procedures and functions by invoking then using PL/SQL or other object oriented languages such Microsoft .Net, Java etc.
Microsoft SQL Server:
With its recent releases to solve the locking issue, add capabilities to reporting and analysis services, export a rich set of statistics, MS SQL Server earns its place to be a credible competitor against Oracle. Microsoft SQL Server uses T-SQL and ANSI SQL as its primary query languages. Since .NET and SQL Server are both Microsoft products; there is better support on the .NET application development side if the chosen database platform is SQL Server. SQL Server only runs on Windows platform.
What’s a good database design?
A good database design serves as a cornerstone of a good application. Typically, there are 2 steps to go through: Data Modeling to include all necessary workflows and fields for the business process and Normalization to eliminate data redundancy.
Data modeling is the analysis of data objects and their relationships to other data objects and does the process of structuring and organizing data. In addition to defining and organizing the data, data modeling should also impose constraints or limitations on the data placed within the data store.
Being the first step in database design, Data modeling should capture and translate complex system designs into easily understood representations of the data flows and processes, creating blueprint for writing an application.
An entity-relationship diagram is a data modeling technique that creates a graphical representation of the entities, and the relationships between entities, within an information system. ER diagramming is an invaluable aid to engineers designing database programs.
Normalization is the process of restructuring a data model by reducing to their simplest forms. That means it reduces the redundancy of the data and improves the performance of update and delete statements. By normalization it identifies each set of related data with a primary key.
Application development on top of DBMS.
There are a lot of different architectures, technologies, and languages to build an application utilizing DBMS in the back as data storage. From the usability perspective, as architects, we need to look at devices people use to run the program, whether it is a smart phone, tablet, thin pc, workstation, or just a browser.
Earlier in the 90s, there were still a lot of Client/Server applications, where client computers are expected to do some processing once data reaches its end. As internet took off, web-based solutions became a norm to save time and money for deployment. Nowadays, we also have to pay attention to what mobile devices users are on to use the program.
In terms of technologies and languages most commonly being used, there are Microsoft .Net (VB.NET & C#), Java, C, C++, Python, PHP etc. Both Microsoft .Net and Java are true Object-Oriented programming languages but with different syntaxes.
About .Net technology:
.Net programming technology is built on a very secure application development platform that offers rich user interface data security with protocols that effectively prevent memory leak during running of the application. It provides better performance by taking advantage of early binding, just in time compilation, native optimization, and caching services right out of the box. Microsoft .Net programming is easy to use as it has a set of user-friendly tools that helps to increase programmer’s productivity and save customer’s time and costs. A wide range of applications can be developed through .Net programming such as windows form based application, web and mobile applications etc. The .Net application platform also provides a high degree of crash protection and can automatically recover and make the application and web pages available.
Iron Speed Designer
At today’s pace, businesses cannot afford to wait long for a software program to come out; the traditionally line-by-line programming for data access layer, business layer, validation and user interface takes up a huge portion of development cycle and make developers less productive. Application generation becomes a must and Iron Speed Designer neatly fills the void in the market. It is a development tool similar to Microsoft Visual Studio but it also generates the Data objects, Business Objects and web application pages in C# or VB.NET without the developer writing a single line of code. Besides, the designer is very intuitive where users can drag and drop controls and set their properties. Web applications generated by Iron Speed designer are fully compatible with Microsoft Visual Studio and further changes can be made there.
I hope this article helps with anyone trying to learn more about database programming or getting some insight on whether Iron Speed Designer can help with your development.
Please feel free to contact me at firstname.lastname@example.org