DataMouse Home Services Portfolio Store Contact Forum Blog RSS  
 
Latest news from the DataMouse.biz blog
 
May 11

Having a great website is fruitless if no one can find it. This is where SEO, or Search Engine Optimisation, comes into play with your web design.SEO

When web users are browsing the internet, they use a plethora of means to reach their content. From search engines, to directories, to back links, a surfers visit your site through many means. As a result, SEO can be improved by increasing your hit-rate through each of these mediums.

Additionally, the “calibre” of the site that they are referred from, and the number of sites that link into yours also affect the ranking of your site, as Google and other search engines recognise this as a sort of “vote” for your site.

When DataMouse.biz take on improving the ranking of our customer’s sites, there are several activities that take place:

  • Benchmark current traffic and search engine positioning

Analyze current traffic trends through log analysis software. If not feasible, the web site will have to install any industry standard server log analyzing software.

  • Create Baseline Search engine visibility index.

Analyze search engine positioning before submission. Objective here is to carry out a thorough study on current search engine positions and current effective keywords/ key phrases where the web site has achieved consistent, respectable rankings across submitted-to search engines.

  • Collection of new Keywords & Analysis

Analyze popular keywords in category across major search engines. Study top 20 position holders in major search engines.

  • Create versions of Meta tags and keywords for different search engines

Create site-wide Meta tags according to requirement and specifications of different search engines and directories.

  • Optimize the pages for search engines (Site Re-engineering)

Site re engineering to optimize the entire site with site content/navigation with appropriate keyword weight age.

  • Implement new content and Meta tags

New keyword rich content and Tags have to be implemented.

  • Submission Cycle

Methodical hand submission to google adhering to their submission cycles.

  • Link popularity building campaign

To achieve high Page Rank (link popularity)

All of these activities, together with a long-term partnership to maintain the optimisation, ensure that your site attracts as many visitors as possible. Now all we need to do is improve conversion (visitors:sales) on your site; which will be covered in another post.

DM

May 11

In real estate investors and home buyers alike are commonly told that the most important consideration when purchasing a property is: “Location, Location, and Location”. Well for webmasters the most important consideration is: “Content, Content, and Content”! On the web the overall driver for a website is the content that the site contains. Content is to a website what inventory is to a retail store.

Without content, or inventory there is no traffic, no sales and most importantly, no free text links. Let’s face it, when was the last time you saw a lot of customers wonder through an empty store? In web terms, the content of the site is what keeps your visitors coming to see you. If you have nothing for them to see or read then they have no reason to visit. The content of a website not only has to be of interest to your visitors, it has to keep them coming back. It needs to engage them, and make them want to return to your site for more. Make sure your content has a few contextual links to authority websites on articles content.

Content is not enoughtIt is important to realize that good content is not enough. The content of the site has to be both high quality and relevant to the niche of the site otherwise it will likely never be found. The internet is like a huge cloud full of information particles. Internet travelers scour the web for the information that they seek. They use search engines, directories, and links from other sites to point them in the correct direction until they find what they are looking for. The search engines categorize the websites based on the content that they find on the site. If the content is not niche specific the search engines will have a hard time deciding on what your site is about and this means that search engine search results will likely never include a listing to your web site.

The content of the site is just as important as the look of the site. Submitting your website to search engines or directories when the site has an unfinished look will often result in a lot of missed text link opportunities. Many directories will not accept links from unfinished websites. In fact many webmasters will not accept reciprocal links form websites that are under construction as well. Have a clean finished look and lots of content is essential for a website to attract visitors and link partners alike.

So what is it that defines “Good Content”? A few things to consider when building a website are the following:

  1. Make the site niche specific. Ensure the topic of the site is narrow enough so that the search engines will clearly understand what your site is about.
  2. Check for broken links. Visiting a website and clicking on a link that is broken is always a nuisance.
  3. The search engine spiders that look over your site will also penalize you for broken links by lowering your page rank.
  4. Draw in your visitors by making the site interactive.
  5. Use Audio, and video to grab and hold their attention.
  6. Use polls or create some other type of interaction so that your visitors can interact with the site and not just visit and watch.
  7. Ensure that your site is Search Engine Optimized. Make sure that your specific keywords are included on every page of your site. Make sure your titles, keywords, and page text are all in alignment.

Building the website is not enough. Having top notch, original content is essential for attracting traffic to the site and encouraging return visits. The search engines, directories, and even other webmasters will review the sites content before placing text links on their site. Having top notch content will actually encourage other webmasters to place links on their site back to you, so long as they feel your site will offer their visitors good content.

DM

May 4

Everything you need to get started in selling physical and digital (downloadable) goods over the internet, from the Catalogue front-end that is presented to your customers, to the Administration Tool backend that completely handles your products, customers, orders, and online store data is available through an osCommerce website.

osCommerce is the leading Open Source online shop e-commerce solution and provides a huge amount of functionality for your online store.

e-commerce storeThe store infrastructure is built in PHP and can run on mySQL database, and is compatible with version 4.0 and upwards; which means that it can be added to almost any web server and hosted without any additional changes to your website account. Once installed, osCommerce is structured in “modules” that can be positioned almost anywhere on screen, giving web designers the ability to create custom interfaces to online stores.

Aside from changing the appearance, osCommerce also supports many other features, including user-selectable currencies and languages, automatic payments through PayPal and other vendors, as well as mailings and product promotions. osCommerce can support SSL encryption for safe and secure shopping, and can even control real-time shipping costs based on FedEx and UPS parcel prices.

With over 8 years of operation, there are thousands of osCommerce shops that have been Shopping Cartcreated and are in use worldwide. osCommerce is the standard by which other shopping carts are measured.

If you’re thinking of running your own internet e-commerce store, why not check out what DataMouse.biz can do for you?

DM

May 3

There are a number of good SEO checklists you can use when you start to optimize your web site for the search engines. They’ll help you make sure you don’t miss anything as you climb to the top of the search engine results pages (SERPs). But what do you do if you’ve done everything you can think of and your site doesn’t seem to be going anywhere?

Every SEO seems to confront this frustrating situation sooner or later. Fortunately, there are forums devoted to SEO. Many heads with lots of experience, often with very different kinds of sites, can come up with things to check that one person beating his or her head against a bunch of pixels might not have considered. Developers call the practice of trying to figure out why a particular program isn’t working the way it should “troubleshooting.” This article will cover some of the things you’ll want to consider when troubleshooting your web site’s SEO.

It was inspired by a thread in an SEO Chat forum. The original poster mentioned that he maintained a site that had less than half of its pages listed in the main index of Google. He made some major changes to its internal linking structure to fix some mistakes he’d made earlier; Google also isn’t listing his internal links correctly now. He’s looking for some kind of checklist so he doesn’t feel like he’s just stabbing in the dark.

The first check he can perform, of course, is to make sure that his site is set up in accordance with Google’s own guidelines. The search engine just recently updated these guidelines to be clearer and include more information. If you scroll down to “Quality guidelines – specific guidelines,” you’ll see that many of the bulleted points now contain hyperlinks that take you to more information about specific issues, such as hidden text. Take your time with these to make sure you fully understand the guidelines.

Once you’ve done that, a lot of the things you need to check fall under proper site maintenance and making sure that Google can see everything you want them to see. This won’t solve all your problems, you understand, but enough items can be accounted for in this way that it’s worth going down the list.

Human searchesIf you keep in mind how search engine spiders work, all of the things I’m listing to check in this section will seem obvious. But they can also be missed inadvertently, which is why it’s always good to check them. Think of it as part of good site maintenance, or even “site hygiene,” to coin a phrase.

A robots.txt file is a good thing; it tells the search engine spiders whether or not to crawl a particular page. That can be important if you have certain content set up to be seen by subscribers only. But if your robots.txt file is set up wrong, the spiders could be avoiding web pages you actually want them to see, thus preventing the pages from being indexed.

Likewise, a search engine spider can’t follow a broken link on your site. Neither can a human visitor. Make sure all of your links work perfectly.

Do you have any nofollow tags on your internal links? Google honors that tag, which means it doesn’t follow a link with that tag at all – not for awarding “link juice,” and not for indexing. Keep that in mind when you set up your site’s architecture and linking scheme.

Do you have any pages without content? While a site is always “under construction,” you never know when the search engine spiders will be paying a visit to index your site. You want to show them your best face. Keep those oddball pages to a minimum.

How good is your site navigation? It doesn’t have to be fancy, but for the sake of both your human visitors and the search engines, it should be consistent, with general categories leading to more specific topics within the categories. SEO Chat, for example, has a long list of navigation links on the left side. You can visit a variety of topics which we cover in our articles, such as “link trading,” “search optimization,” and others. Click on the category, and you get a list of articles; clicking on an article title will take you to the first page of that article. It’s very predictable.

Speaking of content, you’ll also want to check for duplicate content. You need to find out whether someone else is duplicating your site’s content (in which case Google, who can’t really tell which site was there first, might be penalizing you by mistake). You also need to find out whether you have duplicate content on your own site – whether you’re duplicating someone else’s content, and whether some of your pages are so similar that Google sees the two pages as identical, and chooses to index just one. There are a variety of tools you can use to check this; just Google “duplicate content check.” Or you can just Google some key phrases from the content that you think has been copied, and see what comes up.

Web designers love to add all sorts of “interest” to a web site with lots of flair and flashy features. Menu links based on JavaScript or Flash make search engine spiders choke; they can’t crawl past them. Likewise, they can’t crawl to pages that aren’t linked to something, so you should make sure that every page on your site can be reached from at least one static text link. Dynamic URLs are also an issue sometimes; you’ll want to check Google’s most recent guidelines on those. It used to be true that search engine spiders couldn’t crawl them at all; now they can, at least to a limited extent.

You can make Google’s work even easier by submitting a sitemap. Do it in XML, and keep it up to date. You can find the details for how to do this here; the page lists the protocol and explains how to submit your sitemap. Keep in mind that your sitemap should not be larger than 100 links. If it is larger than 100 links, you will have to break it up into more than one page – and you can include another page on your sitemap that links to both of those pages, so Google can keep crawling. Incidentally, if possible, you really should have less than 100 links on each page of your web site as well.

Speaking of your site’s structure, you might want to take another look at it, especially if you’re not using a template. Cookie cutter templates may look boring, but GaryTheScubaGuy (aka Gary Beal) cited one possible reason to at least create and use your own unique template: it may help keep Google from seeing very little or duplicate content on your site and then backing out. He notes that this is rare, but he has seen it when a novice builds a site one page at a time with no template. “In a correctly built site most robots will parse the template and crawl the content and see unique content. This allows them to crawl deeper and faster,” he explained.

Sometimes it’s a matter of patience. If the site is fairly new, Google simply will not have Calendargotten around to indexing all of it. If you’ve recently purchased a site that has been around for a while, you’ll want to consider what was on it before. If the site has undergone a serious redesign, has the domain or subject of the site changed, or remained the same?

Is your site an affiliate site? Or does it link to an affiliate site? Those have their own special issues, which are beyond the scope of this article. I can say that avoiding duplicate content is particularly tricky for affiliates.

There are a number of things you can do to fix your site after you complete your troubleshooting. Some of them will be obvious depending on the problems you find: adjust your link structure, create appropriate sitemaps, and so forth. Other items will be less obvious. Also, it’s worth keeping in mind that my list is by no means exhaustive; it’s a general list, not specific to any particular site or type of site.

One thing you can do is assign crawling priorities to your Google sitemap tag. This way you can make sure that the most important pages pertaining to your position in the SERPs get crawled first.

Another thing you’ll want to do is take care of canonical issues. Make sure all variations of your home page’s URL redirect to the URL that you’ve decided is your “official” one, generally http://www.yoursite.com/ (with the www at the beginning and the slash at the end). Your official home page URL should be whichever one you’ve focused most of your past link building efforts upon.

Optimise your imagesUse file compression to optimize the sizes of your images and other files. This means that your site’s size as a whole will be smaller and load faster. Search engine spiders will be able to crawl your site more quickly and index more pages.

As a related issue, you’ll also want to check your server’s response time. Does it deliver good performance? Or is it slower than normal? This is another factor that can seriously affect how quickly the search engine spiders can crawl your site – and thus how much of your site they can index.

There are other factors you can check as well. One of the nice things about forums is that many of them let you search for previous threads, so you can see the advice given to others in your position. But checking the items I described in this article should help you get off to a good start if and when you need to troubleshoot your web site. Good luck!

DM

Apr 18

Adobe® Photoshop® software helps to improve the workflow path from imagination to imagery. Ideal for photographers, graphic designers, and web designers, software delivers features such as automatic layer alignment and blending that enable advanced compositing.
Although we shall cover some other graphics packages, such as FireWorks, in other articles, when creating images for the web, there are few tools that compare with PhotoShop and its diverse range of web design-specific tools.
Web designers can create or modify images with a wide assortment of professional, fully customizable paint settings, artistic brushes, and drawing tools. When this is combined with an intuitive workspace and the ability to import and export a wide range of file formats, including PSD, BMP, Cineon, JPEG, JPEG2000, OpenEXR, PNG, Targa, and TIFF, PhotoShop is one tool that today’s web graphic designers should not be without.
PhotoShop and DreamWeaverThe colour palette, for example, can be optimised specifically for web-safe colours. Web designers can also undo and redo any set of editing steps in an open image with the History palette, and automatically track all editing steps within your files with the Edit History log. Export steps to a text file or save them as part of image metadata for easier documentation of your work, file audits, and more. This makes managing specific icon palettes much, much easier in PhotoShop.
Being able to create an image across multiple layers and then splice that image into specific segments ready for use with Cascading Style Sheets makes it easier for web developers to become web designers.
Cutting a base image into segments and using CSS can create superbly styled and visually impressive websites very easily. Combined with DreamWeaver and the new integration tools available between the two software packages, both web design and web development just became even more seamless.
If you create custom icons and web graphics – as opposed to web banners et al – you will usually have a common theme across your icons. For example, orientation, palette colour or sizes.
With PhotoShop, you can automate common production tasks in a variety of ways. Set up event-based scripts, record a series of steps as an Action for efficient batch processing, and design repetitive graphics faster with Variables.
Being long established as the software of choice for web designers, PhotoShop has a massive on-line following. Forums and support sites are in abundance, with over 113 million web pages available when searching for PhotoShop information!
Whether you’re creating fun web graphics with comic styling and bright colours, realistic images for printed portfolios or vector graphics for scaling, PhotoShop is the perfect software.

Apr 7

We have seen some truly horrific database designs! This section contains a few suggestions and hints to try and prevent some of these and to make your database development work that much easier. Be warned however, Access is deceptively easy to get into. To use an analogy; Access is rather like a gently sloping sandy beach. You start to wade out and the water only just laps above your ankles, you keep wading out and the water very slowly rises up to mid-thigh. Then, suddenly, there is an abrupt drop-off and within a couple of paces you are in very deep water. For many simple database applications you can use the wizards and simply wade around in the shallows. If you need more complex systems then you will either have to learn how to swim or hire someone like us who has a powerful boat!

Design your database tables properly. Spend time and effort getting this right. If your underlying database structure is wrong then everything you do subsequently will be made much harder and may not even function at all. Make sure your foundations are solid, don’t build a major database system on sand! If you don’t understand about database design then hire someone who does! Table design issues to look out for include using the correct data types (eg don’t use a numeric field for a telephone number and use the date type for dates or times rather than a string), use indexing correctly, make sure the design is ‘normalized’.

Aside: Roughly speaking a normalized database is one where the data in each table is only related to the main ( = primary) key of the table and where any duplicate data definitions are removed. For example if you are taking orders then you would NOT have one table containing OrderNumber, OrderDate, ClientName, ClientAddress, OrderDesc1, OrderValue1, OrderDesc2, OrderValue2, …etc but instead would have perhaps three tables; one containing OrderNumber and OrderDate, one for Client Details and one for the Order Details. This is a gross simplification but should give you the general idea. It is vitally important that your underlying database design is correct!

By all means use the wizards but don’t rely on them to produce the full answer. The wizards are fine if you want a quick and simple database that happens to meet one of the supplied scenarios but don’t try to take them too far. If you want something more advanced or that does not match up with one of the pre-defined templates then you must look at the underlying structures and make sure these will work with your proposed solution. The Query Design wizard however is great and you will find this immensely useful in making SQL more approachable (and if you are saying “what’s SQL” then you need to do a lot more training before tackling any significant database work).

Learn and use VBA. With Access 97 and 2000 you can completely forget about macro’s (with earlier versions of Access you still had to use macro’s for a few functions). Macro’s are OK (if you like that sort of thing) but they can be quite limiting; for example you cannot include any error trapping within a macro, so if a macro has a problem then your application just crashes without warning! If you want to do any serious development using Access you must use the proper programming language (all of our code is done using VBA - we hardly ever use macro’s).

Split your database into two (at least). Keep all of your code, forms, reports, etc. in one ‘code’ database and all of your tables in another ‘data’ database which is then linked to the ‘code’ database. This makes modifications, updates and back-ups that much easier and allows you to work on a new version of your ‘code’ database without affecting existing users. It also makes it easier should you wish to convert a single user databases into a multi-user networked version.

Don’t use spaces, quotes or other punctuation characters within your field names. Stick to A-Z, a-z, 0-9 and the underscore ( _ ). Access allows you to use most punctuation within field names but the use of single or double quotes can mess up SQL and cause your queries to fail - especially when you are constructing them in VBA based upon data in a variable (eg FieldName = ‘” & VarName & “‘…). Spaces and other punctuation will work most of the time, but you must then remember to enclose these field names in square brackets.

Additionally if you export data to another package, or if you later want to convert to client/server, you may find that the other software won’t accept the field names. Best avoided - it saves heartache later on!

Make sure you put in adequate error trapping and that you test the final solution properly.

Don’t be over enthusiastic with the color palette. A limited number of subtle colors are usually more effective than glaring purples and fluorescent greens.

Learn how to the use the debugging tools effectively. Access 97 and 2000 especially have got some cracking debugging aids. Make sure at the very least you know how to single step through code and display the contents of variables.

Be wary about using ocx’s/Active-X add-in components with care unless you know what you are doing. These components (they keep on changing their name) can be highly useful but are often incompletely documented and may cause problems. For example they can work fine on your development machine but then refuse to work when you create a run-time and install it on another machine. Having said that they also offer an easy way to extend the power and flexibility of Access when you get them right! Just remember, we did warn you!

OK, that’s about it for now - Is there anything else that you’d like to see added? What, some code samples! Well, ……. all right. But just a few,… we can’t be giving all our secrets away!!!

Dates

Well, the Y2K thing was a bit of a non-event, certainly none of our customers reported any problems with any of our software (but then again we never expected them too). However dates do cause a lot of problems so perhaps a few words on the subject might be in order. All versions of Access and SQL Server internally store dates using four digit years. Hence valid dates stored in time/date fields in tables should not be affected when, for example, the century ticks over. The main problem lies in the initial entry of dates, either manually or from imported data. Access 2.0 (unless the Y2K patch has been applied to it) will interpret any two digit year as starting with an implicit 19. Access 95 varies depending upon which .dll’s are on your system. Access 97 and 2000 have a date window for 2 digit years which should cope with most situations. SQL Server has a sliding date window that is user configurable.

We feel that it is best to subject all incoming dates to a custom date validation routine. This has the added advantage that you can modify a single function to change the rules for date validation easily as time progresses or your internal business rules alter.

Some of the built-in date functions, such as Now(), read the date from the Windows system clock. If this is correct, then the Now() function should work okay. However some older BIOS’s will not tick over the century correctly, resulting in invalid dates being passed to the the Now() function. This is a system wide problem and, as such, we feel that it should not be corrected inside Access (since all sorts of other dates on your system will be wrong). Instead we include a test in the start-up routine of all of our Access databases that tests the Now() function and makes sure that it is later than 1 Jan 1998 (or whatever the date is when you program the routine). If it is less then this date then the BIOS is reporting an incorrect date, a message to that effect is shown and you are not allowed to progress in the database until the problem is resolved. This also solves problems caused by CMOS battery failure, so it’s a good routine to use anyway.

A related matter is the display of date information. As a rule we advise that all date information is displayed using a custom format such as d mmm yyyy (move the fields around to suit your own country format) rather than using the Short or Medium Date formats which only show two digit years. The use of a four digit year display format gives added re-assurance to the user that the date information in the database is correct.

DM

Apr 6

PadSoftware, database and web development all have documented best practices and industry standards and conventions, but these are often easy to neglect in favour of a quick solution. But what exactly do we mean by ‘Best Practice Design’? The following article explains these techniques and what they mean to you, the customer.

The Importance of Best Practices

If your application is developed to Best Practice then it should be:

* More robust - In other words it should suffer less from data corruption, crashes and errors.
* More accurate - The information held within the database should contain less invalid data, fewer inconsistencies and few, if any, duplicates.
* Easier to support - Any problems that do occur should be identified and resolved quicker.
* Easier to maintain - Any minor changes or updates should be faster and cheaper to implement.
* Reduced reliance on the developer - For all of the above reasons you will be more independent and significantly less reliant upon the developer.
* Cheaper to upgrade or to upsize - If you decide to make major changes to your application, say upsizing it from Access to SQL Server, then this will be achieved in a shorter timescale and at a lower cost.

Some of the most important best practices are listed in the following sections.

Database Normalisation

DatabaseWhat is it? - Organising the data tables of a database to eliminate certain common problems and errors from the database, as well as protecting the integrity of the data.

Why is it important? - A relational database that isn’t normalised can result in duplicated data.

Referential Integrity

What is it? - A means of protecting the integrity of the data in a database. Essentially it means that a record cannot be created or deleted until any associated records have already been created or deleted. For example an order header record could not be deleted if there were still order detail records linked to it.

Why is it important? - Referential Integrity means the system itself looks after the integrity of the data, rather than relying on the user.

Error Trapping

What is it? - A coding practice to deal with errors that occur within an application.

Why is it important? - If an error occurs in a routine without error trapping then either the system will crash or, often worse, a misleading error message might be displayed. Error trapping ensures the error is handled ‘gracefully’, with friendly error messages displayed to the end-user.

Data Validation

UsersWhat is it? - Ensuring the data entered into a system meets specified rules (e.g. End Date must be after Start Date)

Why is it important? - GIGO, which means Garbage In equals Garbage Out. A database is only as good as the information that it holds so it is important to try and trap as many mistakes as you can during data entry.

Version Control

What is it? - Checking that the version of the application you are using is up to date. This is of particular importance with client-server applications where the application is ’split’ into two separate entities.

Why is it important? - If a discrepancy exists between versions (for example a user logs onto the version 2.1 database with a 1.1 front-end) then the system may crash or introduce errors into the data.

Change Control

What is it? - Logging changes made to a running application - e.g. why the change was made, when it was made, what the new version number is, who made it, which parts of the system were affected, etc.

Why is it important? - If you later detect new errors or inconsistencies it is very helpful to be able to review any changes that may have affected that part of the system. It can also be of benefit to the helpdesk or IT support.

Table Driven Design

DesktopWhat is it? - Using updateable data tables to control the application’s design, such as the options that appear in dropdown boxes.

Why is it important? - Ensures design changes are implemented consistently across the entire application. A table driven design also allows some maintenance tasks to be performed by the user, rather than relying on the developer, and speeds up the whole process of updating the design.

Naming Convention

What is it? - A naming convention establishes a standard for the names given to the objects of an application.

Why is it important? - A naming convention helps any developer looking at an application to understand it’s internal details much more quickly than would be the case if a naming convention has not been applied. In practice a system with a good naming convention can be up to twice as fast to modify as one without. Additionally it makes migration of the data to another system much easier.

Best Coding Practices

What is it? - Writing code procedures in a consistent, logical and readable way. This includes layout, commenting, declarations and other best practices.

Why is it important? - Following best coding practices helps any developer looking at an application to understand it’s internal details much more quickly. It also means the code is more reliable and robust.

Documentation

CalendarWhat is it? - Technical documents outlining the structure of the database (known as the schema), source code for procedures, and any other appropriate documents. Can be included with the code change log.

Why is it important? - Documentation is vital in future updates to the system, helping any developer to understand what objects to change, and more importantly the impact those changes will have on the rest of the system.

Summary

Best Practice is not a tightly defined set of rules; it is more a combination of a detailed understanding of the underlying technical concepts, an appreciation that an application will continue to evolve and be developed over the coming years and a determination to do a good job & deliver a quality product.

An application developed with Best Practice will take slightly longer to write than one which does not and may therefore cost a little more. However, over the lifetime of the software, and usually over the first year of the project, overall costs should be significantly lower, data reliability will be better and the robustness of the database will be greater.

If one was being cynical you could say that by not following Best Practice a developer can create an ongoing revenue stream from all of the minor amendments and enhancements that will subsequently be required. However, ensuring that your solution is built with these practices in mind will nearly always work out cheaper in the long run.

DM

Apr 5

DatabaseDatabase Fundamentals must be prepared to all the computer professionals and users. If you lack in their actual meaning of terms, you would always find an uneasiness and discomfort when these jargons come to you. This article is targeted to a novice and expert both, so that novice can prepare and an expert can revise things as well. My approach is to mention all the things concerned with database concepts.

[1] Entity and Entity Relationships :

Entity :

An Entity is place, object or thing for which we can collect information.

Such as Student is an Entity and we can collection information like Name, Phone and Address. Here, Name, Phone and Address are the Attributes of entity ’student’.

Entity Relationship Diagram :

Also called as E-R Diagram. E-R Diagram is the graphical depiction of the entity, its attribute and relationship between entities.

[2] Data and Database :

Data :

Data are the single unit of an information.

Such as if name of an employee is ‘John’, then ‘John’ is a data. His telephone no. is ‘+9109880959786′, then, this is also a data. The value of the attribute of any entity can be said as data.

So, Data are the known facts that can be recorded and have their implicit meaning. e.g. name, telephone, address etc.

Data is a plural and ‘Datum’ is the singular form of the data.

Information :

Plan your databaseWhen the set of data are collected together in a meaningful manner, an information is generated.

Such as if we take example of an employee ‘John’. The Name is ‘John’ , Telephone no. is ‘+9109880959786′ , designation is ‘DBA’. So, if we collectively analyze these, we get information that ‘John’ is an employee with telephone no. ‘+9109880959786′ and he is designated as ‘DBA’.

So, When the some set of data are collected together, information get produced. Although, this information is not for computer, this is just for humans only.

Database :

Database is the collection of related data.

Database is logically coherent collection of data with some inherent meaning. A random assortment of data can not be said as database. Such as a Telephone Diary is also a database, but, if it is randomly stored then, it can not be said as database. Database can be generated manually or in computerized manner. The Library catalog is also a database.

[3] Database Management System (DBMS) :

Database Management System is the collection of programs and tools that enables users to create and maintain the database.

A DBMS is also a general purpose software system that facilitates the process of defining, constructing and manipulating databases for various applications.

Characteristics of Database Management System :

(1) Self Describing

(2) Insulation from Programs and Data Abstraction

(3) Support of Multiple views to Database.

[4] Advantages of DBMS:

1- Controlling Redundancy :

There are provisions in all database models that redundant storage of the data can be avoided.

2- Security Over Unauthorized Access :

This is the feature found in the database that without proper login, no one can modify or store database. The security can not be achieved with the flat file (Sequential) approach.

3- Providing Persistent Storage for Database Objects :

Database can be used as the persistent storage of Program objects, Database and Database structures. This meant that a complex object of programming languages can be stored in the database. This gives more flexibility and compatibility of database over the programming languages.

4- Permitting Inferencing and Actions using Rules :

Inferencing is the method for defining deducing rules for inferencing new information from stored database. Such database are called as Deducible Database. In other words, there must be some methods to provide information by logical implementation on the stored database.

6- Allowing Multiple User Interface :

DBMS has the capability to provide concurrent execution of various parts of the database. In this approach, Deadlock and other anomalies are also handled by the DBMS.

5- Backup and Recovery :

Database Management Systems have proper mechanism to Backup the whole database and recover when any disaster comes to picture. There are methods for Disaster Recovery in all DBMS.

[5] Data Models :

A data model is the set of conceptual tools for describing data, their relation, semantics and consistency constraints. There are following data models-

(1) Hierarchical Model

(2) Network Model

(3) Relational Model

(4) Object Relational Model

Describing all of these would be out of context. You should know that with all these, Relational Model is famous one. Newer implementation of DBMS do follow Object Oriented Model. Such as Oracle, Sybase and SQL Server.

[6] Logical and Physical Data Independence :

Data Independence is the quality of DBMS that ensure the capability to change the database in a manner that the change in one level does not affect the other level. Such as change in the physical storage (Internal Level) does not affect the database structure (Conceptual Level).

(1) Logical Data Independence:

Capability to change the Logical structure without changing the external and internal schema of the database.

(2) Physical Data Independence:

Capability to change the Physical schema without any change in the conceptual schema of the database.

[7] Database Languages :

There are following database languages-

[1] DDL (Data Definition Language)

[2] DML (Data Manipulation Language)

[3] DCL (Data Control Language)

[1] DDL (Data Definition Language)

This is the language concerned with the creation of database structure and schema related with this. This language is concerned with the definition of the whole database architecture. DDL is used to define and manage all the objects in an database. Such as creating Databases, creating security objects that define the whole database.

[2] DML (Data Manipulation Language)

Insertion, Update , Delete and Selection are the activities concerned with the database manipulation language. DML is used to Select, Insert, Update, and Delete data in the objects defined using DDL.

[3] DCL ( Database Control Language)

Database control language is concerned with the consistency maintaining, authorizing access and other control over the database.

There are some other languages which must be known. These are -

VDL (View Definition Language) : Providing means to view the conceptual schema of database for external level of three level schema.

SDL (Storage Definition Language) : Providing means to change or modify the internal schema of the database.

[8] Relational Database :

The Relation database model is based upon the conception of implementing the database with the Mathematical Set Theory. In this model, data is collection of tables called Relation in the set theory. The Tabular representation of data contains rows and columns in which rows represent set of attributes of individual entity and the columns represent the attribute of entity.

A model is also said as Relational Database Model, if it follows complete set of Rules defined by Dr. E.F. Codd. There are 12 Rules of Dr. Codd. In all of them, only Oracle is supposed to follow nearly all of them. But, the best in performance is Sybase which is more easier to configure that of Oracle.

SQL :

SQL is actually Structured Query Language. This is pronounced as ’sequel’, but ‘Ess-Que-El’ is also correct. It was initially named by Dr. E.F. Codd who named it Structured English Query Language (S E Que L ) as Sequel.

SQL is based on the Relational Model. Nearly all the database implementation in the world are in Relational Model. Sybase ,SQL Server, Oracle, DB2 are the famous implementation of Relational Model. But these are also kept in the Category of Object Relational Model. Microsoft Access is not supposed to be relational model. This actually uses some flavors of relational database. But, can not be taken into account of pure Relational database.

ANSI-SQL :

American National Standards Institute handles the standards of SQL. The changes are made time to time. We have ANSI-SQL-89, ANSI-SQL-92 and other standards. There are several levels decided. Microsoft SQL Server is given entry level.

Conclusion :

This is all about providing protection for passwords. There are many other things to research in the same scenario and I would like to share my ideas when such studies are complete. Overall, my aim was to open your eyes that backups are not only to secure your data, but due to carelessness this may lead to leakage of information. In my opinion, disclosure of important information is more serious matter than loss of information. So, awareness is important and there is a little effort to apply in securing your backups.

Apr 3

So you’ve decided to go ahead a commission a bespoke IT solution, but who do you get to develop it, and what should you be asking for? No points for guessing that we’d like you to considerDataMouse. However, this article looks at what you should be asking for and how to communicate your needs to the prospective developer.Developer

Writing a Requirements Specification

Before getting any quotes you should put together a requirements document outlining what you need the system to do and how you want it to do it. You might want to use this to send out directly to prospective suppliers to get estimates and use it as a short-listing process, or just for your own benefits so you have a clear idea of what you want and what questions to ask. The document doesn’t need to be particularly technical and detailed, but the more information the better.

DataMouse have developed a simple form which you can use for outlining your requirements - please contact us and we’ll email it through it you. You’ll find more details on writing specifications in our article, Writing a Specification.

What to ask for

During a development project, somethings can be easily overlooked, but could make a big difference to costs and development time if you don’t specifically ask for them. The following section outlines some important features that you should make sure are part of the service.

Full specification before you start

NotepadA specification outlines in detail your requirements for the system and should be produced before development begins. Working with the developer to create this specification allows you to be clearer about your requirements as well as making sure your developer has a good understanding of want you want. It also is a good way for you to check off that all the features you have requested are present in the final system.

Flexibility to make changes to the specification during development

WebAs mentioned above, the purpose of the specification is to document all the features requested, and this would be what the developer based their quotation on. However, more often that not, when you start seeing the system in action you will realise you forgot something, or want a feature to work in a slightly different way.

Make sure your developer will allow some flexibility in this respect and won’t charge extra for every small alteration from the specification. If these changes become too numerous or are very complex, then you should expect additional charges. These charges should, however, be communicated to you before the alterations are implemented.

Source code

ComputerThe source code is the skeleton of the system and without the source code and supporting files it is very difficult (if not impossible) to make alterations to your system. If your developer goes bust, goes away or you just fall out with them you could be left high and dry with no way to update or fix any problems. It is not uncommon to come across systems that have had to be re-written from scratch because the original source code wasn’t available - obviously a very costly exercise. Having the source code gives you overall control and means you’re not reliant on the original developer of the system.

Technical documentation

Different to the specification, the technical documentation contains vital information for consultants in maintaining and modifying the system. Good documentation helps a developer to make changes quicker, cheaper, and with less bugs because they fully understand the system and the implications of the changes they are making. As with the source code, having a copy of the technical documentation yourself gives you overall control and means you’re not reliant on the original developer of the system.

Bug fixing

To a certain extent, bugs in software are unavoidable. With good testing procedures the majority of these should be caught and there should be no major problems in the long term. Different developers will offer different levels of support after project completion. However, you should ensure that the developer will fix bugs free of charge - even after the project has been signed off. DataMouse offer a lifetime bug warranty.

As well as bug fixing, you may require other additional support such as user support or system maintenance. If you require this, make sure your developer can offer the level of service you require.

Apr 2

Requirements Document

This document is intended to help you to write the Terms of Reference under which you want a simple database development to be undertaken. It only covers general development terms. When putting work out to tender you will also require a Functional Specification. The sample clauses on this page, which are shown in italics, may be taken and used for the purpose of creating a contract or Terms of Reference relating to a simple bespoke Access development work; larger SQL Server systems may require a more complex treatment. Please note that we are not lawyers and that any such extracts should be checked by your own legal advisors before being used in a legally binding contract.

General

The purpose of these Terms of Reference is try and ensure that the finished database system is properly designed to accepted industry standards and that it follows best practice methodology. Not only should this give you a better product (more robust, less likelihood of bugs, easier to use, better performance, better scalability, higher quality) but it will also ensure that any future maintenance or enhancements to the system can be undertaken with the minimum of cost and time, whether this is just an extra query/report written in-house or a full-scale update to the functionality.

Terms of Reference

It is usually worth starting out with a general paragraph stating that the work is to be carried out in accordance with recognised industry standards. The most widely accepted standards are those espoused in the Access Developer’s Handbook (so far we do not know of one for SQL Server) so you could use a statement such as: All software is to be developed using industry standard ‘best practice’ Access methodology - broadly as described by Getz, Litwin and Gilbert in the Access 97 Developer’s Handbook published by Sybex, ISBN 0-7821-1941-7.”

You will then want to include something that describes the general database design principles to be followed. This is fairly elementary stuff but it is surprising how many databases are NOT designed properly. “The database will be designed according to the relational model and will usually be normalised to the Third Normal Form. Any deviation from the Third Normal Form is to be undertaken for a specific purpose, such as performance, and is to be documented.”

The database system will be split into separate front (code) and back (data) end and will include attachment checking and re-attachment procedures.” Now some description of how you want the naming to be undertaken. Again the industry standard is to use the Leszynski/Reddick naming convention (or a derivation of this). At the same time you should also specify that names should be derived from a restricted ‘core’ set which allows for future compatibility with other systems (for example most back-end server databases do not accept spaces in the middle of names). “Naming of variables, forms, tables, etc. will broadly follow the Leszynski/Reddick convention. eg all tables to start with ‘tbl’, all forms with frm, all queries with qry, all integer variables to start with ‘int’, etc. unless further modified by a prefix for Scope or Lifetime. For example sintCounter refers to a static integer variable called Counter.” “

All names will consist exclusively of the characters a-z, A-Z, 0-9 and the underscore ( _ ). All punctuation marks and spaces are prohibited. Names will use the ‘Camel Caps’ formatting method.” Then for some general descriptions about how the code/forms should be written.

“Code will be commented, indented and laid out in a logical, readable manner.” “All variables will be explicitly declared. The ‘Option Explicit’ statement is mandatory in all declaration sections. All declarations will occur at the top of the relevant procedure.” “All procedures will include a dedicated error processing routine.” “All processing should be undertaken using VB (Visyal Basic), VBA (Visual Basic for Applications) or T-SQL (Transact SQL). Macro’s should not generally be used.” “All controls buttons to include ToolTip text (where available).” “All critical data should be validated during data entry.” And finally a more controversial pair of clauses that may cause major problems with some potential developers. However if they won’t agree to these then you are leaving yourself dangerously exposed. You won’t be able to tell whether or not they have complied with your Terms of Reference and, even more critically, you will be wholly reliant upon their continued existence (and good will) to undertake any future changes to the system, which is usually a very uncomfortable situation to find yourself in.

The possible compromise, but only if you really can’t find a developer willing to agree to these conditions, is to use an Escrow agreement. Under this the source code is held by a trusted third party (eg a lawyer) and is released to the client if the developer is unable to undertake future development work at a reasonable cost and within a reasonable timescale. NB It is reasonable that a developer may wish to protect certain, defined functions that have been developed previously. If so make sure that these are defined and understood before development commences. The latter of the two clauses is to protect you if the developer going bankrupt or is run over by the proverbial bus.

“Full source code will be included with the system together with a description of how to access it. The only exception to this may be specified existing functions which have been developed prior to, or outside of, this project. Any such functions must be clearly defined, their purpose described and their interface clearly defined.” “If the project is to last for more than 3 months then interim deliveries should be made at approximately monthly intervals.”

Conclusion

This document is not exhaustive but is should give you a good starting point for specifying the terms under which you expect Access development work to be undertaken. You may also find it useful when discussing your project with potential developers to make sure that they actually understand all of these terms and can demonstrate to you that they have followed them in previous projects (ask them to show you another project that they have recently completed and ask them to both explain and show you how it complies with these terms).

« Previous Entries