Results 1 to 5 of 5
  1. #1
    YunqHero's Avatar
    YunqHero is offline Novice
    Windows 7 64bit Access 2010 64bit
    Join Date
    Nov 2012
    Location
    Owings Mills, MD
    Posts
    3

    Post Is MS Access a Relational or Object Oriented Database?

    There is a wealth of information on the Web, but I cannot find the answer to my question. I understand that Access has all the qualities of a Relational Database, however, it performs like an Object Oriented Database. My question is what type of database is it? OO or Relational ? Feel free to provide some key differences, I understand the basics.

  2. #2
    ssanfu is offline Master of Nothing
    Windows XP Access 2000
    Join Date
    Sep 2010
    Location
    Anchorage, Alaska, USA
    Posts
    9,664
    As I understand it, Access is an event driven RDMS - Relational Database Management System as opposed to dBase 3+, a flat (non-Relational) database that is (was) procedural driven.

    While Access has Class Modules, it is not truly OOP because it doesn't support true inheritance. See http://www.caug.com/caug-classes.htm

    Here is an article on classes by Albert Kallal. http://www.kallal.ca/Articles/WhyClass.html

    My $0.02....

  3. #3
    Rod is offline Expert
    Windows 7 32bit Access 2007
    Join Date
    Jun 2011
    Location
    Metro Manila, Philippines
    Posts
    679
    Steve is correct in all he writes; there is nothing OOP about the database; you cannot even save an object instance but have to 'rebuild' all instances from scratch every time you open the database.

    However Access itself is an OOP application. All Access 'things' are object classes and instances; for example, the form you design is a class inherited from the generic Access form class and when you open the designed form it is an instance of your designed class.

    As far as the VBA user class modules are concerned, Access does not inherit boilerplate code, only the property/method name and type, common code therefore has to be repeatedly specified in all inherited classes which is very tedious. It is not possible to implement some of the classic OOP class patterns; for example, I have yet to find a way of implementing a 'Singleton.' (I use a standard module for this.) Recently I was involved in answering a question on this forum where the poster wanted to restrict a property/method's availability to the instantiating object and only the instantiating object. It cannot be done (in a foolproof manner) although I suspect it is possible in other languages.

    In summary I would propose that the JET database is a relational database but that Access (in fact all Office applications) and VBA follow OOP priciples, a fact you should bear in mind when coding VBA.

  4. #4
    ButtonMoon is offline Novice
    Windows 7 64bit Access 2013
    Join Date
    Oct 2013
    Posts
    17
    MS Access is certainly neither of those things. MS Access is an application development tool which can be and is used to develop applications for a variety of different databases - whether they happen to be relational or non-relational.

    There isn't necessarily a widely accepted definition of what constitutes an Object Oriented DBMS. Probably the most commonly agreed and logically coherent explanation is that a DBMS is Object Oriented if it supports type-inheritence. That might just as well be a relational DBMS as a non-relational one. So an OO DBMS doesn't have to be something different from a RDBMS because the two concepts are entirely orthogonal.

  5. #5
    Rod is offline Expert
    Windows 7 64bit Access 2007
    Join Date
    Jun 2011
    Location
    Metro Manila, Philippines
    Posts
    679
    Sorry I disagree. The JET (Joint Engine Technology) which is a major component of Access is a relational database management system (RDBMS), actually a very, very good small scale RDBMS. To dismiss Access as 'an application development tool' is to ignore over half its functionality. JET also has provision for open database connectivity (ODBC) workspaces which when used (especially with the ADO object model) to communicate with other compliant databases (Oracle, SQL Server, etc.) do relegate Access to the role of a front-end facility, but even in this situation it is possible for Access to also contain its own JET database.

    Whatever definition you use, there is nothing object oriented about JET; it is relational at the data item level and makes no provision for the management of object instances.

Please reply to this thread with any new information or opinions.

Similar Threads

  1. Need to hire out relational database design
    By janakybrent in forum Access
    Replies: 5
    Last Post: 02-19-2016, 05:11 AM
  2. Few relational database questions
    By rik1254 in forum Access
    Replies: 10
    Last Post: 12-13-2012, 01:13 PM
  3. Replies: 3
    Last Post: 02-29-2012, 03:53 PM
  4. Setting up relational database
    By aceoftrades in forum Access
    Replies: 1
    Last Post: 02-22-2012, 08:42 AM
  5. Relational Database/query help
    By Champin4 in forum Queries
    Replies: 7
    Last Post: 07-14-2010, 08:49 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Other Forums: Microsoft Office Forums