Andrew David Joseph Hall

1993-1994 Distributed Client/Server SQL Database

In 1993 and 1994 I undertook my last project for the Royal Bank of Scotland. It involved taking over and rescuing a failing project.

The Project

Upgrading an existing data capture and reporting system for Central Credit Control from stand alone to distributed databases.

In my role overseeing the introduction of Personal Computers into the International Division of the Royal Bank, I had worked with the Central Credit Control Department to build a system to capture exposures to Corporate Customers and apply weightings and aggregations to allow Central Credit Control to understand the Royal Bank's exposures for the purposes of ensuring Capital Adequacy, consistent with the first Basle Agreement on Capital Adequacy. 

The database allowed a Corporate Customer’s total current and historical exposures to the bank to be monitored and reported, including all the customer’s subsidiaries and major investments.

This system used the Smart System database on three separate PCs (London, Manchester and Edinburgh) and was kept one day behind the times by exchanging floppy disks and merging the three separate databases.

The new project was to upgrade the system to a distributed database, allowing more users to enter data and obtain reports as well as bringing the data into real-time in the three locations.

Gupta's SQLBase and SQLWindows and Novell Netware had been selected as the platform for the new development.

Why the Project was Failing

The project was failing for two reasons:

  1. They had written reams of code that was functional, in small pieces, but could not be integrated.

  2. The team did not have a good understanding of database locking strategies on SQL Databases.

My Approach

I put together a team of 3 programmers.

The team shrank the code and made it more robust.

We did this by building components or "widgets" that could be "dropped" into a dialog and used data from the database to control their behaviour rather than code.

The widgets interacted with the database but not with each other so integration and testing were simpler.

We built the time-series dimension into each component or "widget".

The size of the code reduced from Megabytes to Kilobytes so it worked on the Computers that were available at that time.

Widgets allowed rapid prototyping of dialogues and assisted in refining the requirements definition with users.

We redesigned the database:

  • Implementing a minimalist, but effective, locking strategy
  • Including system data in the database rather than in the code
  • adding a time-series dimension

 

The reporting requirements of the system were quite sophisticated and the success of the system depended critically on the quality of the design of the database. My data-analysis and design skills ensured that the database design we used delivered the funtionality that Central Credit Control wanted.

Adding the time-series dimension allowed historical reporting without batch processes to capture "views" of the data on reporting dates.