Thursday, 18 April 2019

Database Schema


While designing this database, I came across a number of problems: poor indexing and drawing a single table for all domain values. The Payment section was difficult to develop as I did not know how to index it properly and correctly. There are times when an application or user needs to query several columns of a table. As the number of rows was recorded, the table grew significantly and this impacted the time queries took to complete. To speed up the process and to reduce the effect of overall table size, I had to spend extra time in indexing the table columns, and this helped me make the entries visible instantly. For this purpose, I have to invoke a SELECT query, which sometimes leads to deterioration of the INSERT, UPDATE and DELETE commands. The indexes were to synchronize to the content of the database. The problem was finally solved by having a single index for all columns, and this was distinct from the main key I used to query the table.
Another significant problem was that an all-encompassing domain table did not prove to be as beneficial as I expected it to be for the database design. In the Bill section, it took me a lot of time and energy to mention the number of the bill, date of the bill and status of the bill. It should be noticed that a relational database is built around the idea that every object in the database will represent one thing only. As part of the normalization process, the breaking down and isolation of data ended in every row which represented a single thing.
While modeling or mapping the schema, I found it difficult to store or maintain data. When I used the code that could help access the database, it took me a lot of time to store and maintain the data (Elmasri, 2018). At this point, I felt that it was good to get a programmer involved. The stored procedures provide us with the power to change features of the database code without the involvement of additional resources. Finally, I was able to make small changes and a couple of major upgrades (such as changes in the SQL syntax) in order to ease my work.
Based on the requirements of the project and the database schema, the first hosting option is HostGator. It is known to provide shared, virtual private server, reseller and dedicated web hosting services. Another ideal option is Bluehost, which is a reputed web hosting company by Endurance International Group. Bluehost operates all of its servers in-house, which means quality is always guaranteed. One of the major advantages of this hosting service is that its servers are powered by HTTP/2, NGINX+ caching and PHP7 (Halpin et al. 2003).
An SQL Server with up to three terabyte data storage capacity is required to store the five-year-old history of the data. This will be loaded from the new internal data warehouse and the historical pharmacy uploads. The estimated budget for the server is $25,000 USD, and nearly $ 60,000 will be spent on other things.
The one limitation of the current data warehouse is that it will be used to load the proposed data structure, with focus on historical data only. I think that this could be improved by focusing both on the latest and historical information. As far as the design is concerned, I think that it is an innovative design and will help store patient data in a better way.


References
Sabo, A. (n.d.). Retrieved from https://www.gcumedia.com/digital-resources/cengage/2018/database-systems_design-implementation-and-management_13e.php
Halpin, T., Evans, K., Hallock, P., & Maclean, B. (2003). Generating a Physical Database Schema. Database Modeling, 231-253. doi:10.1016/b978-155860919-8/50015-1
Elmasri, R. (2018). Database Schema. Encyclopedia of Database Systems, 973-974. doi:10.1007/978-1-4614-8265-9_80735
Raflik, M., & Pätzold, B. (1990). Database Schema Definition. CAD*I Database, 101-121. doi:10.1007/978-3-642-84335-8_5
Database Schema Integration. (n.d.). SpringerReference. doi:10.1007/springerreference_61915