I had intended to write a "learned" document. As I did lots of "mental"
planning of and for the content, I decided that I would just chat.
I hope that it works - please tell me what you think.
If you have an address book, a diary, a filofax or a box or tray of cards that contain information, then you have got a database.
Having said that, I suppose that the title of this page should have been
Databases held on Computers !
But never mind Eh !!
Most computers have something called a "Hard Disc". That disc has one purpose - that is to store information. That information is kept safely after (and whilst) the computer is switched off. The disc is kept in a bit of hardware called a "Disc Drive". The drive has the wherewithall to add information to the disc and to read information back from the disc.
Nowadays discs are capable of holding (or storing) many Gigabytes of information. A Gigabyte is 1000,000,000 bytes - one thousand million !! (well to be really correct, a Gigabyte is actually 1,073,741,824 bytes). A byte can generally be said to be a binary representation of a character. Not many years ago, typical Hard Discs had capacities of a few Kilobytes.
That meant that programmers and folk that stored stuff in computers needed to compress the information in order not to waste precious storage space. Now however one hears phrases like "Lets throw some more disc at the problem - storage is cheap". That has really changed the whole way in which computers are used.
Now let us consider for a moment the organisation of the information stored on the Hard Disc.
If you were going to write a hard copy document that was going to contain several thousand million characters, you would certainly not take a huge scroll (or roll) of paper and start writing at the top and just stop when you get to the end (adding after-thoughts at the end). That would be a totally unusable document.
Sensible folk would write one or more Books containing Chapters and Pages - some of those pages would contain Indexes and Tables of Content.
Well on Hard Discs (and most other computer storage media) the space would be Partitioned into Drives - equivalent maybe to Books. The Drives would contain Folders (or Directories) - equivalent maybe to Chapters. The Folders would contain Files - equivalent maybe to Sections or Pages.
Some of the files would contain Indexes and Tables of Content.
As you might imagine, there are hundreds, maybe even thousands, of different types of files used on computers. It is possible to divide them into two major groups:-
- Files used to tell the computer what to do;
- Files that contain information.
The second type, I will call Data files
This group of files are outside the scope of this page. One day, I may have the health, energy and inclination (and even the knowledge) to write something on that subject. If and when I do, I will try to remember to return here and put a link to that place.
There are legions of types of Data files. A couple of small examples are given below.
Peter 01522 459667 George 020 8857 1234 Lyn 0845 7 987 123
Peter Byers, 42 High Street, Sometown, Somecounty, DD5 9ZS George Smith, 9 Somestreet, Anytown, London Lyn Brown, Cheltenham
These can be called Data files, as they contain Information (or Data).
It would be stretching the imagination a bit much to describe them as DataBase files. It seems to me that a major distinguishing feature of DataBase files is that they have some logical and consistent structure to them. An example of a file that has a simple structure to it is shown below.
'FORENAME','SURNAME','ADDRESS-1','TOWN-CITY','COUNTY','POST-CODE' 'Peter','Byers','42 High Street','Sometown','Somecounty','DD5 9ZS' 'George','Smith','9 Somestreet','Anytown','London','' 'Lyn','Brown','','Cheltenham','',''
It is known as a CSV (Comma Separated Values) file. The Values in it are separated by Comma's. The first line of the file contains the information about the Values held in the file.
The second and subsequent lines contain "Real World" Information (or Data)
Such a file could be described as a simple DataBase table.
By the way, it you create a file called ADDRESSES.CSV that contains the above contents, you can then open it in a spread sheet program - the one that I tend to use is called Excel (produced by the Microsoft Corporation). But there are many others around.
So computer DataBases are Logically Structured Data files.
Individual DataBase files are often called "Database Tables". One or Several Tables go to make up a "DataBase".
Where there are several Tables, they can be linked to each other. Imagine that you are constructing a Table for Employees for a company which has a significant number of Employees. You might want to show details of the Department for each Employee. After you have typed the details for the same Department several times, you think "Why don't I give each Department a Code Number and create a Table for Departments ? Then all I have to do is put the Department Code in the Table for Employees"
The tables are then said to be linked on (or by) Department Code.
Of course you will need to make sure that you do not add any Employees with Codes that are not defined in the Table for Departments. Similarly, you must not delete any Departments for which the codes still appear in the Table for Employees.
This is a few faltering steps into the area called "Ensuring the Referential Integrity of Databases" - a subject that is far too big to be covered in this page. Many learned tomes are available on this subject There is much science associated with databases - for example "Normalisation" ! Oh how I remember being told to make sure that my databases were in "Third Normal Form".
You may want to pursue the science of databases !!! BUT In my more rebellious moments I have been known to wonder out aloud if database science was not simply a codification of common sense - more to do with providing income for clever book authors - rather than the improvement of the functionality of database !! Shame on you Peter - hehehehe
There are lots of different Databases (remember a database is one or more files containing data). We will talk about several different ones. However one of the major differentiators that need to be taken into account when you are selecting the one that you are going to use is the Software (programs that is) that is available for the creation/management/manipulation of the tables and data in the databases.
It also seems to me that database suppliers should remember that they make their money from selling their software. It seems to me likely that if folk are lured into using their tables (with other software) they will soon buy the software intimately associated with the tables !! Sadly, not all of them seem to either recognise or accept this premise.
Let me give you an example !!
I happen to love and use dBase tables. I have also purchased several versions of dBase software. The software is not expensive for what you get BUT it is a significant expenditure for students, beginners, one man (or woman) businesses, small IT departments with small budgets.
It is not always realised that you can create dBase Tables by saving tables from Excel as .DBF tables. You can do the same by Exporting Access tables as .DBF tables.
You can manage data held in dBase table by using VBS (Visual Basic Script) or ASP (Active Server Pages) - both of these products can be obtained for free.
I have started several students and other folks in this way and a good proportion of them have gone on to purchase dBase software.
Now I have to tell you (and you really should believe me) phenomenal, brilliant support for dBase is available in their Newsgroups. However it is my impression (and of course that may be wrong) that not many visitors/regulars to the newsgroups know (or care) much about the techniques of using dBase tables with other software. It seems to me that this may be somewhat shortsighted!!
Any-road-up, let me get back to talking about some of the many Databases available.
I started many many years ago writing my own data files and then writing programs to add/modify/delete/view the data therein. It was good experience and I am pleased that I did that. But it would be uneconomic madness to do that now-a-days, it would be really re-inventing wheels that are readily available.
Next came Btrieve - a product that had some methods provided for data manipulation. I believe that it is still available. It is very small footprint and very fast processing.
I dont know why, but remembering these two database methods has provoked me to recall a Binary Chop method of finding data. I was very proud of my ability to write good fast code to ahieve this method - but enough of that, a story for anther place, another day.
Next I got involved with a huge network of Hewlett Packard minicomputers running an Operating system
called MPE. It used a proprietory database called IMAGE - it had two report generators, one called
QUERY and the other called ASK. As I remember it, IMAGE was a database that all others should aspire
to. Sadly all of no use or interest to Personal Computers running Windows Operating systems !!
this is my page and I can reminisce if I want to - hehehehe !!!
Next came a serious involvement with Oracle and a few very very similar products - I always feel that Oracle is (well was) the "Big Daddy" of databases. It costs big money, it handles big tables, it has a big company producing selling and supporting it. I guess that if you were looking at producing Enterprise Wide databases for MultiNational, MultiMillion Pound enterprises then Oracle or equivalent would be a serious candidate.
It was at this time I started to get into and a bit familiar with SQL (Structured Query Language). If you are going to learn to use it, make sure that you learn a dialogue that is appropriate to the language/software that you will be using. Two things that I learned the hard way are that:-
- SQL interpretors are very pedantic about the syntax of statements;
- Some SQL interpretors are cleverer than other - it is aggravating to speak a "clever dialogue" to a "dim" interpretor !!
Next, I suppose comes the ubiquitous Access database system from Microsoft. It is easy to create tables with this system. There is a significant bank of literature warning against Access. I suppose that there must be problems with it, I make that judgemement on the "no smoke without fire" basis. However, I tend to work on the principle of "horses for courses" - if one uses it for reasonably static, small to medium size tables, used in stand alone or low hit rates in shared applications (I do) - there is not usually trouble with it.
I do not think that I would feel very comfortable using it for large, high change rate, business critical applications.
Finally, in this discourse, comes dBase. What can I say about it - easy to use, reliable, bet your life on it !
It used to big very famous, with a huge user base (the giant Microsoft recognise it in their applications such as Excel, Access and Word - they would not do that if it was "no-account" stuff!!). Sadly, in the recent past, it has become less well known. It was bought from Borland by a company called dBase who are trying to get it re-recognised. If they will succeed, I do not know but I certainly hope so.
I guess that you can see that I am a supporter of dBase, well I am. BUT Not to the exclusion of all other systems. I am a firm believer in trying to identify the most appropriate tools for the job. SO I do not use dBase blindly for everything. I use dBase tables for lots of applications even when I am not using the dBase software.
You may recall that I mentioned earlier that an important part of the database discussion is the software supplied with the package. The next brief section reviews (and explains a bit about the subject).
Before we launch into this it is probably worth mentioning that there is lots of "Third Party" support and products available (usually on the Internet, or in Newsgroups - have a look at news://news.dbase.com as an example). It is worth looking into Newsgroups, Support Groups and Third Party supporters before you rush into re-inventing wheels that already exist !!
First, Oracle - you may recall that it is a while since I was really actively involved with this product. At that time, there was good software supplied for the creation/management/manipulation of the tables and data in the databases. I do not know it of my own knowledge, but colleagues tell me that now there are many good Visual Development tools supplied.
I guess that the price that you will pay, you should expect that. If you are about to spend serious money to purchase Oracle, you will have invested time and money to see what you are getting for it before you buy.
Access from Microsoft, there are lots of software to create Tables and Reports supplied with this package. The creation methods are "sweet" - even dim old me can use them, they are good, easy and effective.
I know that incredibly sophisticated Reports can be created using the software. I have seen them, they are very impressive. Folks that I have never thought of as very clever or computer literate have produced good reports, so it cannot be too difficult. In the UK, there are lots of organisations that will teach you to use Access, so no-one needs to struggle!
I am ashamed to tell you that I have not found the creation of reports easy - some sort of psychological block on my part I fear !!! Fortunately, I have not been called on to produce many reports, so the problem has not been a serious one.
dBase software is good and easy to use. It has really kept up with the developments in IT technology with such things as OOP (Object Oriented Programming). It seems to me that its real strength continues to be in the production of very top quality Windows Programs for StandAlone and Networked computing. I think (though others have disagreed) that it is a very scalable technology.
The recent versions of the product have included the means to product Internet Applications quickly and easily. I must declare that I have not made much use of these facilities yet, I have prefered to use different techniques.
Probably the most sweet thing about the most recent versions of the product is something called DEO files - a brilliant means that allows easy distribution of upgrades to your programs. Have a look, you will be impressed.
It is my page and it is eight days before Christmas, so I can wish, can't I - hehehehe !!
I have and do write lots of applications to run (on the Internet, Intranet and Stand Alone) using Internet Browsers as the Human Interface. (I will not pursue the reasons for that approach here - but if you think about it, you will realise that it makes sense.) On almost all of them, I use dBase tables to store information. I use two means of processing the data:-
- starting up programs written using dBase software;
- accessing the tables using ASP (Active Server Pages).
At the moment, I use an object called "ADODB.Connection" which is provided free by Microsoft. It allows me to read from and write to dBase tables. Sadly though, there are threats and rumours of threats that a new version of the Microsoft software will not allow me to write to the tables in this way. My answer at the moment is to ensure that computers that are using my applications do not install the Microsoft Upgrades.
My WISH is that someone will write an object that might be called "ADOdBase.Connection" that will do all of the things that "ADODB.Connection" does at the moment and more.
There is a man that I am sure could do this, but I fear that there would be lots of reasons why he will not. His name is Jim Sare, one of the most clever folk that I know.
AnyRoadUp - I can dream, can't I - hehehehe.
But seriously though, if any person or company is interested in and capable of producing such an object, I will certainly be prepared to purchase a copy. I might be persuaded to contribute some up-front funding for the development.
All of this page may pale into insignificance in the not distant future, it could all be overtaken by something called XML. I have started to head in that direction myself and (based on the "Lets throw some more disc at the problem - storage is cheap" principle) it really does look like the way to go. All other databases could go extinct !! Have a look around for information on it, you will be surprised !!
I have a couple of sets of pages that show examples - if you are interested, ask for the links in the feedback box below.
It excited me
I fell across an article relating to Databases that interested and excited me. After I had read it, I downloaded the code and tried it - it is brilliant !! If you are going to try it out, you will need to have the ability to look at SVG things in your browser. If you have not, or do not know about SVG, have a look here.
But anyway, have a look at the article, it is called "A Portable Database Diagram". If you click here and then register (free) then follow the link for "A Portable Database Diagram", you will be able to download it - it is really exciting, interesting and useful - you will be pleased to have looked at it.
Hopefully you found this page interesting
If I am really lucky, maybe you learned something new from it.
I pray that it may have provoked thought.
Please tell me about your thoughts and reactions.