Saturday, November 24, 2007

Do Senior Civil Servants understand data?

As a database developer and it is with disbelief that I watched the disc story unfold. The story about the two CD's sent by post that were lost and the office messenger boy who does the carrying things to the mail room was blamed for losing 25 million sets of personal data.

1. There were 2 CD's. This means that the data was at most 1.5Gb in size. I dont know what speed the datalink at the Revenue office is but lets assume it is a bog standard small office link. The download speed could be 20Mb a second, ie 5000 seconds per Gb.(less then an hour)
The upload speed would be a 8 times slower.

Secure ftp could have been used to acheive the next day delivery that TNT was offering.
I think one will find that they have a super fast uncontended digital connection which would have much higher upload and download speeds.

2. As for the cost associated with filtering this data, It would take me 5 mins to construct a filter - no matter what database format was used, incl. ones I am not familiar with. I would say that there is probably at least 50,000 people in the UK with these particular skills. By the way my wifes laptop could run this filter on 1.5Gb of data in less then 10 secs.

3. It is hard to imagine that the person in charge of and controlling this data does not have these database skills, or is assisted by someone with the skills.

4. The question of whether someone followed departmental procedure is a red herring to avoid the real question, which is about how the procedure was arrived at, in the first place.

5. If the people controlling these databases are so backward in their understanding of data and data manipulation, how could they ever be remotely trusted to be able to control the integrity of the data they have and the forthcoming ID card databases. The database technician has more control of it then they do.

6. I would bet the password protection on the disc is a widely available proprietary one that could be bypassed
by a $50 download.

Labels: , ,

Sunday, October 21, 2007

Top 10 Database design tools

These are the Tools I personally find most useful.

MSAccess

Great first database design program. Wizard driven form,button and report generators. Has the advantage of being able to run on most business PC's running Microsoft Office. You can get under the hood with Visual basic and VBA. Can be used in multi user environments. Also good as front end for MySQL and MSSQL databases.

MySQL

Great second database program to use. Install on your webserver and use it for blogging, e-commerce, CMS systems, forums, etc. There are lots of great scripts available for this platform and most are easily configurable. Slight differences in the field data format with MSAccess.

DB Tools Manager

Great Database management tool. Backup and copy data. Run SQL commands, view data, manage connections,

Notepad

One of the few Microsoft programs that keeps text files clean.

PHP MyAdmin

Web based MySQL editor, controls MySQL through browser.

Excel, 123, Google Documents

A Spreadsheet program for cleaning and preparing data.

Data converters

Essential when working with legacy data.

CutePDF

PDF printer and file generator.

FileZilla

Solid FTP program.

Dreamweaver, XML Spy

For publishing and creating XML content.

Labels: ,

Friday, October 05, 2007

Database Design for business - Part 4 What platform to use?

The decision as to which platform to use will be decided probably by the database developer. Each database designer has their own personal favourite development environment and some developers work exclusively on one platform. I will go through the good points of the main database management programs.

MS Access
Microsoft's database program that formed part of the Office series of software and is now sold separately. If Microsoft Office 2003 is installed on your office machines then you have everything you need to run an Access database. This is a big attraction as users don't have to learn any new operating systems or processes.

A database designed in MS Access can be easily improved by some one else with a little experience and as it is a common platform there are lots of people with MS Access skills available. The development and design side is easily accessible and user friendly although a lot of its power is hidden under the bonnet. I have used MS Access in many multi user situations and find it suitable for systems with up to 10 users. It can handle csv data imports fairly readily. I have made systems with 30 million records and found it could still function reasonably. I have even used MS Access as a back end database for an e-commerce site. Although there are limits to the number of concurrent users and if that shop was really busy it could collapse.

Quite complex business processes can be modeled in MS Access and the reporting side is quite useful and easy to format. There are lots of useful ready made databases in MSAccess available and bits of them could easily be incorporated into your design.

MySQL
MySQL is the number 1 database choice for delivering online applications. MySQL powers more online applications than any other database in the world including such high profile web sites as: Yahoo!, Google, Flickr, YouTube, Wikipedia and thousands of corporate online applications.It is a powerful and scalable platform which means that you can run the same database on more then one machine - need more users stick another server on your stack.

MySQL is opensource software which means that the licences are free to use. You can buy more feature rich versions from MySQL AB the the Swedish firm which writes MySQL.

MySQL with Linux,Apache and PHP is the basis of the famous LAMP stack server setup. Over 60% of all websites with interactivity use a version of this setup.

MySQL is the database of choice for e-commerce and cms sites. Internal systems run on MySQL run very fast and can handle high numbers of users. The development environment consists of third party programs that link remotely to the database and allow manipulation of the data and database, the most famous being PHPMyAdmin which is now owned by MySQL AB. MS Access can be linked to MySQL using ODBC drivers.

MSSQL
Microsoft's enterprise level database, scalable, and quick. Must be run on a Windows server, lots of different flavours and prices. Quite expensive in comparison with the previous two, but the main difference is the built in transaction logs, and roll back abilities. The security is higher then MS Access and so is the speed.

This would be recommended to companies with high numbers of users who are happy in the Microsoft environment. Is useful for website backends and interactivity.

Oracle, IBM
Similar products to MSSQL with similar pricing structures £5000 per processor typical price.
Slight differences in the way that they store information although tools are available that convert one sort of database data to another.

The differences are fairy esoteric to the average joe and are really only understood by the developers using them. If your database designer says he must use a particular platform because of a particular feature get them to explain why.

The decision to use a particular platform at this level is usually the preference of the designer and not because of a compelling feature that one has and other doesn't. Because of the price of licences involved then pricing is an issue especially in large organisations requiring multiple databases.

Tomorrow I will list my favourite database tools.



Labels: , , ,

Monday, September 24, 2007

Database Design for Business - Part 3 Working with the designer

Now that you have decided who is writing your database we move onto the database writing phase.
The database designer might initially start work on his own premises and only later in the project will he start working on site. When the writing phase begins make sure that you have a desk and internet connection available for the use of your designer. Remember you want him working not looking for somewhere to plug in. Make sure you have introduced him to all the relevant personnel he will have to deal with and that they know what level of cooperation with him that is required.
When the designer asks for information make sure it is provided promptly and accurately. A proffessional data designer should be extremely trustworthy and safe to entrust access to your data. A database designer who allowed information to escape would not be designing databases for long. A non-disclosure agreement might be applied to business processes to prevent your database designer selling the same system to one of your competitors.

Payment should be made on agreed targets being met. This is where your initial description of what you want done is very important. Most database designers will not embark on a project until an initial deposit is paid typically 20-30%. The designer should have a design path laid out with key completion points and payment schedule inbuilt.

Reporting design is where you will have the biggest input. Remember these reports are why you wanted the database in the first place. Specify the information you want to see before you tell the designer how you want it to look. If it has to fit in with a corporate style make sure the designer has access to the necessary graphics files.

Make sure the designer has all the contact details of the personnel involved in the project. A good practice is to set up an internal blog that everybody involved has access to. This can used by the designer to document the development process also.

I know I have said he and him for the designer, who could in fact be female.

Labels: ,

Saturday, September 15, 2007

Database Design for Business - Part 2 Instructing the designer

There are two elements to this first appoint the right designer and second communicate your database design ideas to them.

The database designer should understand your basic business processes and not try to add extra processes you do not do already, unless of course you are introducing new practices. To acheive this they should be prepared to visit you at your premises and look at existing practices and figure out how they will impliment your new system, assuming that they think they can. If they suggest that you need extra hardware or software ask them why they are needed.

If you communicate your design idea effectivly to the designer you can more easily set a fixed price. If your ideas are a bit vague so will the pricing. Write a detailed list of the differant elements that your idea requires. (Customer List - Name, Adress,telephone, e-mail, Accounts ref,fax, delivery addresses, e-mail preferance,credit limit, etc,) Show the calculations that you need to do on the data, and do mock ups of the reports you would like.

The designer should be able to tell you when they can start your project and how long it will take. They should be available to train you and your staff if necessary. There will more then likely be some issues and unforseen circumstances that will need to be patched up when the system goes live. Will the database designer be able to offer remote assistance or onsite help?

Get the designer to show you some other projects they have completed. Try and see more then one designer! Some designers speciallise in differant industry sectors but this is not something that you should give to much weight to, as long as your designer understands your business processes.

Next we will look at the technology choices available in Part 3.

Labels: , ,

Wednesday, September 12, 2007

Database Design for Business - Part 1 Getting ready

Define and Refine and then Define again

Ok so you have a problem that you think you can solve by getting a database written.

Well the first step in having your own database is to define the problem/task you want it to do. This requires more then an outline of the problem/task. As databases are just a method of dealing with various bits of information, this means looking at everypiece of information that you will need for your project. Where does the information come from? What calculations need to be done on this information? Where is this information going? Do we need to print anything? Are we publishing to a webserver?
At the early stage of development we need to look at how many users there will be on the system?
How many different transactions will we be recording? How critical the system will be when it is in place? This information will help us to decide which platform to use. By platform I mean the program you or your database designer will use to design your database. The platform or database management system (DBMS) is computer software designed for the purpose of managing databases. Typical examples of DBMSs include Oracle, DB2, Microsoft Access, Microsoft SQL Server, PostgreSQL, MySQL and FileMaker. DBMSs are typically used by Database designers in the creation of Database systems.

Here are the top 10 things to do if you are considering buying/building your own database.

Be realistic about the number of users, transactions, etc, and about how the workload will grow in the future. There is no point using a huge Rolls Royce engine when a small Honda will do, and equally a small Honda when you really need a big Jet engine.

Keep focused on exactly the immediate job it needs to do. Don't add unnecessary bells and whistles. The most successful databases are the ones that kill those little repetitive jobs that eat up you and your staffs time.

Format the data to a form that can be easily incorporated into your other systems.

Draw a diagram of how the data is collected and input
(Jim in the warehouse enters the incoming delivery details into a form on his computer, the database interrogates the clocking in machine, whatever.)
Continue the diagram to show what happens to this information
(Ann in accounts matches incoming invoices with Jim's delivery notes, The database works out wages based on a table of employees and their pay rates.)
Then show the output of the database
(A report is emailed to the MD to tell him the value of uninvoiced deliveries in the warehouse, the database sends weekly wage figures to the Payroll program for processing.)

Take a long look at the existing input procedures you are using (we are assuming they are successful) What parts of the process can be speeded up? (Is Jim in the warehouse having to type in the same address 30 times a day?) As a general rule ask the person doing the job currently what takes them the most time and invariably they will immediately describe the most boring and repetitive part of the job and is usually the first problem the database should address.

You already know the calculations you make on a daily basis and funny enough a lot of them are boring and repetitive no matter how fancy the mathematics is. So if your database can collect all the figures and variables you need for your calculations why not let it do the calculations for you.

Is the incoming information accurate? Does the database need to enforce any rules on the incoming data?

How many people will be using the system, Where are they using the system from? How secure is my information?

Different levels of access to reports and information.(Does Jim in the warehouse need to know what you are paying for stock?)

Know what benefits you are bringing to your company if the system works as you imagine. (Increases in productivity, lower costs, quicker process, and what that is worth in financial terms.)

If you do these things you are ready to start talking to a database designer in general terms about your project.

I will tackle this question in Part 2 Appointing a designer

Copyright 2007 node-net.com

Labels: , ,