A question for the pros

  • Thread starter Thread starter Mike375
  • Start date Start date
M

Mike375

Guest
This question is just out of interest.

With main frame computers or this stuff like Oracle and whatever else, can someone do things on those that can't be done on Access. I am excluding number of records and number of users.

In other words, if all of sudden Access could do everything the big ones can do then would it allow someone do more on a data base that is confined to one computer and one user.

Mike
 
Mike,

The Access (Or Jet) database engine has nowhere near the level
of horsepower that a true database server has. That's what
they exist for, solely to process large amounts of data. They
generally have better security, much better journaling and
the most important - Triggers bound to the data.

You don't use Access for its DB engine. The ease with which
you can create tables/forms/reports and tie it in with the
rest of the world is what Access really offers. The fact that
it is also a pretty good db is a plus.

Access is an easy and cheap way to view/modify data from the
"big money" servers.

Wayne
 
Wayne

What does this mean:

"and the most important - Triggers bound to the data."

In Access terms we would be thinking (well I would be thinking this :) ) that Triggers bound to the data means stuff like IIf or various "conditions.

Mike
 
Mike,

A trigger is something that you can set up on a table in SQL Server (not a feature in Access). When a record is inserted, updated, or deleted your trigger will fire and its code -- the code you write for it -- executes. Sometimes triggers are used to enforce "business rules." Say you only want users with certain permission levels to change a price in your Price Table. You might then program the trigger to check if the user who just changed a price had adequate permission. If not, the trigger could essentially rollback the change. Because the trigger is on the DB, it's easier to maintain then, say, code that does the same thing and resides in all of the separate front-ends on all of the different PCs that access the database. Some DB people, though, avoid triggers because they can slow down a database's responsiveness.

Additionally, Trigger was Roy Roger's horse (I'm hoping you have a sense of humor).

Regards,
Tim
 
Thanks all for the responses.

I am gaining the impression that a move from Access to the "Big Time" stuff is related to numbers of records and numbers of users. So if there were 30 computers in a business and each computer was "self contained" with its own records and own .mdb file then the big stuff would make no difference. Whether that is good way to be setup is a separate issue.

It almost seems that it would be like moving from a small 4 cyclinder car with a small trailer (that is, articulated vehicle) to a Kenworth or Mack but the Kenworth or Mack might still have the same looking instruments and brake pedal as the 4 cyclinder car but when you hit the brakes they are much bigger brakes that are used.

Mike
 
So if there were 30 computers in a business and each computer was "self contained" with its own records and own .mdb file then the big stuff would make no difference. Whether that is good way to be setup is a separate issue.

THIS IS NOT A GOOD WAY TO SET IT UP!!! I know you said "is a seperate issue" but why, why, WHY not do it right in the first place? Mike, no offense, but your giving me an ulcer over here! I know you have your own *special* way of looking at things as is evident in the giant post on this forum but let me ask you something - are you planning on working forever or taking your application with you when you leave? The reason I ask is that if you keep designing application like this eventually someone will have to take over your work and they will be stuck!!

The proper way to set up a database between computers is to use a front end/back end setup where you have one backend and then each computer has a front-end to that back end... please look into normalization and proper db structure...

I AM NOT trying to yell at you or be offensive - I'm realy, really just trying to help you... learning the proper way to set this stuff up really is not that difficult...

HTH
Kevin
 
Kevin_S said:
learning the proper way to set this stuff up really is not that difficult...

HTH
Kevin
unless you're an insurance salesman apparently :confused:
 
I really think Mike is just trying to learn a little more about SQL/Oracle and how all that stuff works as opposed to how Access works and try to get a feel for if they may be potential long solutions for his db needs. I think his assement is correct that the SQL/Oracle performance upside wouldn't offeset the effort needed to implement and maitain it (In HIS situation). Sounds to me like Access is a good choice for what he's doing.
 
Kevin

What if four of the workers are over 2000 miles away and in addition records on each computer have no relationship with those on another computer. Completely separate. Then what if one of those workers is gone after a month and replaced by another worker who is in a different location.

Mike
 
KenHigg said:
I really think Mike is just trying to learn a little more about SQL/Oracle and how all that stuff works as opposed to how Access works and try to get a feel for if they may be potential long solutions for his db needs. I think his assement is correct that the SQL/Oracle performance upside wouldn't offeset the effort needed to implement and maitain it (In HIS situation). Sounds to me like Access is a good choice for what he's doing.

You got it in one.
 
Mike375 said:
Kevin

What if four of the workers are over 2000 miles away and in addition records on each computer have no relationship with those on another computer. Completely separate. Then what if one of those workers is gone after a month and replaced by another worker who is in a different location.

Mike

Are these computers connected by a network? I'm assuming they are if this is one business as I have yet to find a business that didn't have a network connected pc's together. The format still holds true - you would have one back end database on a server with the client front ends on each computer regardless of distance (the only fact distance plays is performance but this can be handled by passing small record(s) at a time over the network or - in extreme cases - a push/pull setup where records are created/edited in the FE and then "pushed" at one time to the BE). Now, when you say "records have no relationship with one another are you talked different applications i.e Human resource data vs. widget sales? if you are then yes, they would not be connected to but I believe from your previous posts that when you say "records have no relationship" you are thinking in spreadsheet mentality again and thinking that because it is different salesmen selling widgets in seperate locations then the records have nothing to do with each other when, IN FACT, they have everything to do with one another as they both deal with selling widgets for the same company! Proper design would have one application with ALL widget sales records that contain all company sales - where different salespersons edit/modify/work with their sales customers and regions...

this way you can figure total company sales/expenditures/etc.. without having to collect data from each individual as its all stored together - again - have to get away from spreadsheets and into database design as this is the whole reason for access ***referential integrity between data***

If a worker leaves they have the same FE you simply enter a new employee in the database at ANY FE any they are good to go - no additional table/macro/form setup as its all ready to go - which leads to a good point that you say it would take you too long to learn proper design and coding but you tell me which would take longer in this situation (A) you creating new tables, reports, forms, macros, and then do a new install at a location for a new employee OR (B) adding a user name to an employee table?

HTH,
Kevin
 
When comparing Access to ORACLE/other "big boy" databases, the biggest differences come about when you are looking at what is added by the "big boy" DB package vs. Access.

First and foremost, the big boys (in general) automatically force you to work in a split-db concept vis-a-vis Access. That is, the big boy is always and only an SQL processing tool with regard to its data files. Any forms, reports, etc. come from a separate tool that you add-on to your big-boy purchase. "ORACLE Tools" is the package you would buy to implement a front-end for your ORACLE database, if you wanted to stay all-ORACLE.

Features that you either have to write yourself or that cannot even be done at all in Access:

1. Analytical change history a.k.a. journal a.k.a. forensic log - lists EVERY change made to EVERY field in EVERY table (if that was what you wanted) and the original value of the changed field - so that you could, say, roll back a committed transaction to a prior point in time.

In Access, the ONLY way to do this involves blocking EVERYONE from doing anything that is not based on a form, and then putting a bunch of analytical or comparison code behind the forms to test the before-and-after images of the record you are about to update.

In the big boy databases, audit journaling at this level is usually built in.

2. Data-centric triggers (as opposed to event-centric triggers). The common industry nomenclature appears to call the former "Trigger code" and the latter "Event code". But the truth is, they are really the same. They just occur under different circumstances. Trigger code runs when something specific happens. The difference is from where the code is called.

Data-centric triggers are "tripped" when a field has a value-trap defined and the specific value is detected. Suppose that you wanted to take special actions for a record in which a particular field contained a particular range of values. Maybe an extra validation or a different set of default values. Or an automatic e-mail.

In Access, you can only do this through a form or a macro that calls code based on an Update event of some flavor. If even one person can make a record change without going through your form, you are hosed. But in the big-boy databases, data-centric triggers are merely like "extra" event routines that you can define. They will work even in cases where there is no form or macro-equivalent running.

3. The big boys have the incredibly important ability that many times you can interchange data nigh unto automatically if you have more than one type of computer and your db vendor supports all the types you have. For instance, at this site we have several Windows, UNIX-like, and OpenVMS boxes that run ORACLE. At the ORACLE level, the host O/S makes no difference. They talk to each other peer-to-peer when we define the conditions that allow such interchanges. All we have to do is say, "Update table X on machine Y from table A on machine B." Then ORACLE does it. O/S? We don't need no steenkin' O/S!

4. This cannot be emphasized enough. Access bogs down any system on which it runs when there is a network involved. It also has limits that at first blush would appear quite big, but they aren't really. This is because Access by itself is not a really good client/server system. Access with another back-end, however, IS a good system.

The first limit is that native Access, being standalone in concept, has to do everything itself. Which means that, in effect, even for a shared database, your server that holds the database is only a file server, not a database server. All you do is read the heck out of the files. In this scenario, the combination of a large database and a lot of simultaneous users will crack your network's back.

When you use the big-boy databases, the server is no longer just a file server. It also runs the queries locally and returns a result set, NOT THE WHOLE TABLE. Your workstation no longer needs to do anything like a query because the server did that for you.

The second limit is that Access internally uses file-relative pointers to find everything. But the pointers are the moral equivalent of virtual addresses within the file. That is 32-bit addresses. So it doesn't matter whether you have a lot of short records or a fewer number of long records. When you run out of virtual address space inside that file, you're done. And if you have .JPG images, big memo fields, or internally-copied embedded objects, you could be in REAL size trouble fast.

The big-boy databases do not use that particular storage paradigm. Their internal pointers are consistent with the file-system pointers that can include both a block number and a byte-within-block, which is usually larger than the limits imposed by Access. On OpenVMS, which in my case is running on an Alpha (64-bit machine), my ORACLE can have as many records as I have disks to hold them. Access would have a 4 Gbyte limit on ANY system because of its shorter pointers. My ORACLE/Alpha system has terabyte limits, and not single-digit terabyte quantities, either.

In summary, the differences are not only in matters of scale but also in matters of ability. You can do more things with the big boys than with Access, and it is not just more records.
 
Kevin,

Are these computers connected by a network? I'm assuming they are if this is one business as I have yet to find a business that didn't have a network connected pc's together.

No network except on two computers I use. And that is only for saving stuff when I work outside and allowing me to play with the internet in the loungroom at 1.30am in the morning through the wireless connection while iI update policy wording in the data base.

Basically we have what I would call modules. One computer and telelmarketer runs 5 salesman and is totally disconnected from another module. In some cases the module is one computer and one salesman. If the salesman writes up a policy he lodges the application with the insurance company in question an then the insurance company emails me a PDF file of the application. If outstanding requirements develop such as the person buying the policy needs a medical or some question was not answered fully, then the insurance company sends that to both the salesman and myself.

The data changing tables are backed up to CD about every 60 to 90 minutes. That is about the limit in one session for telemarketing. The telemarketer clicks on a label which finishes the call session, closes the forms and then a macro runs that exports the tables to another .mdb and then the macro runs a bat file and copies the .mdb to the CD. After he has his smoko he starts the data base up again.

If he spills a cup of tea or a bottle of wine over the keyboard, he sticks the CD in another computer and the tables a copied across to the data base and off he goes.

So that is basically how it works.

Mike
 
'Their internal pointers are consistent with the file-system pointers that can include both a block number and a byte-within-block, which is usually larger than the limits imposed by Access. - For sure :rolleyes:

Sounds to me like Access is a good choice for what he's doing.
 

Users who are viewing this thread

Back
Top Bottom