August 13, 2007 | Comments: (0)
More on Access
OK, well, the response to my last Access post was a lot more than expected. There are some pretty good comments in there. Some of you made some very good points, both for and against my post. And for the first time in a long time I actually got on and approved comments so everyone could see them.
What I think is great though, is that a lot of you came out against my post, and ended up proving my point for me. I love it when that happens. Rather than dwell on those things though, I thought I'd just kinda explain why I wrote that to begin with.
I'm a professional DBA. It's what I do. That means that I deal with data all day. I backup and restore DBs, I develop DR plans, I spec sizing and performance for new servers, I troubleshoot indexing and performance issues, I recover corrupt data (as best I can), and everything else that goes along with being a production/dev DBA. In my group we do it all. I've been doing this for over 10yrs. And while I realize that there are plenty of you out there who have been in IT longer than I, a lot of you haven't been doing high-end DBs as long as I have.
So I'm looking back at some issues I've had over the past, and it hits me... a LOT of the issues I've been called in on have been due to end users pretending to be DBAs. The issues have been everything from 'we didn't put PKs/FKs on our tables and now we've got thousands of ghosted records' to 'I accidently updated all the records in my table and now we're completely screwed cause I didn't back it up.'
The issues are so varied there's no way I could recount them here, but those of you who support Access know what I'm talking about.
There are simple design principles that end users just don't know. And there's no reason for them to know them either. They're not DBAs. So why then do they want to develop their own apps? I get that it's quicker to use a tool like Access and keep the IT guys out of it. Yeah, sometimes things get over-engineered, but if you leave it in the hands of your end users then things will get under-engineered with almost no thought put behind it.
There's a reason we have DBAs. They know what they're doing. Well, they're supposed to anyway. And for every user that tells me that his Access solution is good enough, I always end up asking them a series of questions that makes them think otherwise. I've always felt that any data worth storing is worth protecting. It's clearly data you want, so why wouldn't you do what it takes to protect it? InfoWorld Daily just last week had an article on the true cost of data breach. So what cost would it be to you to have your employees be able to not just steal your data, but also the entire DB and application?
A couple of the comments to the last post said that I was wrong because there are tons of fortune 500 companies using Access all over the place. Do you think that makes one bit of difference to me? Do you think I really care what those companies are doing? Big companies can take chances with their data the same as everyone else... it doesn't make it right.
Even MS agrees with me. Look at how they're starting to treat SQL Server. In the old days, SQL shipped fully open. You could do whatever you wanted right out of the box. Now they're starting to shut things down more. With Yukon, you can't just install the DB and have it operational. You have to specifically turn on external connections. You also can't use openrowset or cmdshell right out of the box anymore either. The theory is that if you specifically turn something on, you're aware of its presence and are more likely to secure it and manage it properly. That's a method that's worked with Oracle for years.
I've always said that the general population of Oracle DBAs knows far more about Oracle than SQL Server DBAs know about SQL Server. That's because SQL has always been so incredibly easy out of the box that pretty much anyone could get a working DB up in just a day or 2. That's just not true with Oracle. It's becoming more true as Oracle's trying to become more user-friendly though.
So anyway, why do you think MS is putting all this effort into locking down SQL and making you jump through more hoops to open up functionality in SQL? Do you think it's because they're idiots, or because they've gone through their support records and saw where the bulk of their issues were and decided to start protecting us from ourselves? After all, any data loss we suffer in their product instantly becomes part of the reputation of that product whether it's their fault or not. So why wouldn't they follow this same reasoning with Access? Why give users another avenue to create a data store that's ill-conceived and basically unmanaged? From my perspective it just doesn't make sense. Like I said earlier, there's no such thing as trivial data. You either need it or you don't.
Most of you guys seem to treasure Access for its GUI abilities. Almost all of you agree with me on its merits as an actual DB. So why not pressure MS into making it a front-end dev utility? Have its functionality added to Visual Studio or the like and be done with it? I'd probably have a lot fewer problems with Access if it were just a dev environment and didn't put your data at such risk. Or if people used it the way they should and just connected to server-side DBs instead of using it to store data. That's the problem, isn't it? People have been given a pistol without a safety, and they insist on looking down the barrel.
Remember, in DBs, just because you can doesn't mean you should. MS even took object-level restore away from us in SQL 7 because of integrity issues. They wanted to protect us from ourselves. A position they're finally reconsidering. MS isn't stupid. They've got a lot of smart people working for them. And they know how to manage data. So with the way they manage SQL and the way they manage Access, I can only conclude that they're saying anything in Access isn't data worth keeping.
Let's face it, as a company, there's just no reason to give your users the ability to walk off with your entire DB and application. Why even take the chance? And there's no reason to let amateurs create DBs and apps. You're just asking for trouble. Look at it this way, it goes back to a lot of my previous posts where I talk about the lack of respect for DBAs and data in general. You'd never find one of these companies letting some random guy in IT file their taxes with some off the shelf home or small business tax software, would you? Of course not. They take their taxes too seriously. And you'd never find a company letting some random secretary file their numbers with Wall Street, would you? Absolutely not. There's too much at stake. How about making sales deals? Could I just make a sales deal with someone for my company? I mean, why spin up a project for it, or go through the channels and get a sales guy involved? They'll just complicate things and a month later we'll still be waiting. I can make the deal in just a couple days. I'll even go through a day of sales training if it makes you feel better. No wait, here's a better idea. I'll go through a day of training, and then I'll go negotiate our health plan. Maybe I'll choose where our 401K will be invested instead.
All of those suggestions are ludicrous and no company on the planet would even consider any of them because every one of those things takes a highly skilled professional to do properly. Someone who knows that field inside and out and knows the pitfalls. But data... hell anyone can do that. Let's let the dept secretary run an Access DB on her workstation. She can build it and maintain it too. What's a foreign key? Oh, that's not important. What am I going to do if someone updates all the data a table and there are no log backups? Just never you mind. And how often should we back it up? I'm sure someone else will be in charge of that. What about data theft? Oh, that's just an old wives' tale. Is this data already being stored somewhere else? Who knows? What about integration with other systems? Will other people find this useful? Now you're just talking crazy. It's really like being your own lawyer. An end user who writes his own application in Access has a fool for a DBA. At least if you went with the client/server model you'd have to study up some more and you stand a little bit better chance at success.
Now, that's not to say that Access doesn't fulfill a purpose right now. From all the comments I've seen, almost every one of you values it as a front end tool. It's just that MS should make it a front end tool and leave it at that. They should take steps to phase out the DB portion of the product. But that's just my humble opinion. A lot of you were getting very upset at the mere mention of doing away with Access. I don't know why though. It's not like MS is going to do it just because I said it. I could see it now. The Access team sitting around going, oh man, now I've gotta find a new job. Sean said we should get rid of Access. Oh well, I liked the tool and this job, but what can I do... Sean said it has to go.
I'm gonna go off on one last diatribe and I promise to keep it short. Every enterprise data modeling class I've ever seen taught by a college has been taught with Access. Seriously guys, what the hell? While I've seen modeling classes taught in other DBs, they're usually a section in a line of courses for that specific product. But for general and enterprise modeling classes, they're always in Access. I'm not even going to touch that one.
Posted by Sean McCown on August 13, 2007 02:06 PM
RATE THIS ARTICLE:
-

- COMMENTS
Look, while there appreciation for the robustly secure qualities of db's like SQL and Oracle, neither of those (or the other big dogs) can hold a candle to rapid development capabilities of Access. Access shows with greater visual accuity how relationships "appear"; gives the developer diverent views of "SQL statements" and can pilot an application faster than C; VB; .Net or anything else.
And why not use Access as a teaching aid? It holds sacred all the basics of database, reporting AND GUI design; serving as a great introduction to what RDBMS is all about.
Access may not be 32 cubic yard steam shovel, but for a hand shovel, it can still dig a ditch as straight as any of those big boys. (Just not as deep or long.)
Any Access developer in their right mind would never attempt to use the MS Jet for a large corporate/industrial mega data repository; but I would wager it (Access) would be the first tool reached for to pilot the concept!
Access already is a great front-end utility. AND it is also an excellent small business solution for less than giga-requirement data repositories. Dollar-for-dollar, SQL/Oracle/DB2 cannot stand up to the speed with which Access can create a test bed and user interfacing.
In 1997, Key Bank called in a few of us "Access Developers" to build a pilot app they wanted for managing sales contacts. Downtown Cleveland Key Bank offices were seething with DB2, Oracle, SQL and several of types of data warehouse structures; and there were literally hundreds of respective developers. Even they all agreed that Access would be able to develop and trial their concepts faster and less expensively than they could muster. . . . the pilot succeeded; neetly handling over 800 meg of data daily. The project took three months. Once proven, the project was moved on to the VB team where they migrated the jet data structures to SQL and finessed the Access GUI screens over to VB. And finally, a year after that, a C+ team was brought in upgrade all that into a full customized application that connected directly to the warehouse piles. Access gave an exemplary performance to lead the way for what is today one Ohio banking's leading sales managment tools.
Thank you for having the where-with-all to cite some of the true value of Access and not just cast it aside as if it were absolutely useless.
Posted by: Cybercow at August 14, 2007 06:14 PMHaving worked with all the databases mentioned and some that weren't (like dBase when WordStar was the code editor), as well as teaching database design and development at the college and university level for the past ten years, I have some comments.
Although it has been a few years since I have worked with Access, with a properly thought out system using regularly compacted and backed up data stored on a secure file server and MDE files on the desktop containing the GUI linking to the data, no one can "walk away" with the data or change all the records or accidentally delete tables. Sounds like you have never actually done any serious development using Access. I created a number of systems like this for small businesses and charities that could not afford SQL Server or Oracle and someone like you sitting in the server room all day at 30 or 40 dollars an hour, but who happened to own Access. Some of these systems started with Access 2 and were upgraded through 97 and 2000 until they were eventually replaced by newer technology, mostly web applications using php and MySQL.
Starting with 2000, Access could be used to develop front-end applications for SQL Server using adp files when time was of the essence and cost had to be kept low. Using ADO and properly designed class modules, these could be genuine client-server applications. If you had a licence for Office Developer Edition, you could install a front-end on workstations without buying additional Access licences.
Although MS and Oracle have lately tried to capture some of the open source spotlight by offering free, compact databases and dev tools, the main reason that Access is often used to teach database theory is its ubiquity as part of MS Office and the very portability you are knocking: students can carry a db around with them on a USB drive and work on it on their home computer as well as at school. I used to teach SQL using the ISQL db that shipped with Powerbuilder for that very reason -- a simple db could fit on a floppie disk.
I recently taught a course on mobile application development using the .NET Compact Framework and SQL Server Mobile edition and the stripped down sdf file-based db sure reminded me of Access.
According to the people at MS involved with the project formerly known as SQL Server Everywhere, the future is small, portable databases. Check this link at rival publication for more info:
http://www.ddj.com/database/193402926
Now that SQL Server 2005 Express Edition is freely available and distributable, maybe MS should finally retire the Jet database (which seems to be the real problem with Access) and promote Access strictly as a rapid application tool for SQL Server.
Posted by: Rick O'Brien at August 15, 2007 09:38 AMClueless, ignorant and absolutely afraid to let the public see all of your responses. Spineless censorship! Journalistic coward! Professional moron.
Posted by: Sean McCown at August 15, 2007 11:43 AMI suspect you are suffering from SUC (Stupid User Complex). This affliction usually afflicts techies who have spent more time in the server room than they have with the people who actually have to do the work and leads to viewing anyone who isn't at their same level of expertise as an "amateur".
Look, most users don't start creating databases because they want to become database geeks, but because they have a need and IT won't respond fast enough to resolve the issue when needed.
Typically, it goes like this:
User: "I have a fairly simple problem."
IT: "Is this a really cool big project?"
User: "No, I just need to figure out how many widgets we have to throw away because of defects."
IT: "Hey, we're really swamped with really cool big projects. We'll get to you when we have time."
User: "Oh, okay, never mind."
At which point the user starts loading extracts from the mainframe or wherever into Access and happily solves his problem himself, making a complete morass of a database in the meantime.
I don't blame a user for using the tools at hand. What I believe needs to happen is for IT to provide training and guidance so that the users can not make messes that can't be cleaned up. Why not start an Access users group at your workplace for the people who are the "power" users? Why not define some specific guidelines for Access development and "certify" users to do Access development?
I still don't see that there need to be any ivory towers between the users and IT. Our job is to provide solutions, not get snooty about tools.
Posted by: Larry at August 17, 2007 03:38 PMIt has been written, "when MS Office kills MS Access, then there is no need for MS Office." I've been waiting for an MS Access-like front end tool in .Net for years, but again, if MS does that then they don't need MS Access.
I know many management-type persons who "doesn't want to learn SQL, but wants to write their own queries." So on goes MS Access to their machines, attached to MS Jet, Sql Server and MySQL databases as read-only user.
For us, that is why we have MS Access and that is why we have MS Office Professional.
Posted by: SomeBloke at August 18, 2007 09:29 PMYou said, "So why not pressure MS into making it (Access) a front-end dev utility?"
Access has always supported linked tables, which could be SQL Server, Oracle, DB2, etc. and act only as a front-end. And since Access 2000 came out years ago, it has supported a file type called "Access Project (adp)" which is a front end to SQL Server. So I am not sure why you refer to Access as if it did not have this capability. And why you assume that when companies use Access they are only using the "database (mdb)" file type. With Access, data can be as secure as the company wants to make it.
I certainly agree that when users create databases, and they do not have the proper understanding of database design principles, they can create nightmares both in data integrity and security...in whatever system they chose, not just Access.
Posted by: Richard at August 20, 2007 06:50 AMI use Access a lot for specific database programs, so the tool seems right and quite useful to me. However, when I was asked to recommend a replacement for the Evergreen State College's database modeling class, I told the instructor to use MySQL instead of Access. I told him the types of issues and environment were more similar to whatever the student would work with later on; MS Access information should be given based on MySQL's more enterprise-level capability and appraoch.
Posted by: Sherman Meeds at August 21, 2007 09:11 AMTOP STORIES
Hyperconnected users growingSteve Jobs to keynote WWDC
CSC settles kickbacks case
MS previews SMB software
What does HP-EDS really mean?
Mac Office 2008 SP1 released
HP buys EDS for $13.9 billion
Corporate IT spending slows
MS targets smartphone market
Sun to clarify JavaFX plan
ADDITIONAL RESOURCES

- Application Security: Threats and How to Counter Them
- Why Linux Threats Mean Business
- Virtualization: A Step by Step Approach to Success

- Is your smaller organization ready for High Availability?
- Is system maintenance doing more harm than good?
- Virtual Test Lab Automation: Manage development infrastructure





