Re: OO vs. RDB challenge

From: Dmitry A. Kazakov (mailbox_at_dmitry-kazakov.de)
Date: 03/29/05

  • Next message: frebe: "Re: OO vs. RDB challenge"
    Date: Tue, 29 Mar 2005 15:16:02 +0200
    
    

    On 29 Mar 2005 03:32:55 -0800, frebe wrote:

    >>f you say that there is no opposition between ADT and ADTs
    >> describing relations, I will immediately agree.
    >
    > Of course not. ADT can be used to model tables, records, queries etc.
    > But you need a backend RDBMS to provide the implementation, unless you
    > want to build a RDBMS by yourself.

    Why should I if there is a reusable code?

    Example: you buy Windows XP to play say Splinter Cell. You are quite happy
    not knowing that Windows activation system probably uses a giant DB.

    >> And because relations too can be easily implemented as ADTs
    >> there is absolutely no point in treating RDBMS as something
    >> exceptional.
    >
    > I don't think it is easy to implement relations. Making a RDBMS is a
    > lot of amount of work. If you talking about implementing a Table class
    > that can be searched by primary key or by a full table scan, such
    > implementation could be done in less than a day, but when you have only
    > implemented a fragment of the relational model.

    So what? It is a black box, I don't care what it in. That's the advantage
    of ADT. It can hide either a RDBMS or a typing office as long as it
    fulfills the contract, I don't need to look into.

    >> RDBMS is an implementation issue, no more than that.
    >> Therefore it makes a lot of sense to decouple it from the
    >> application
    >
    > Correct, you don't need a RDBMS behind a JDBC/ODBC/ADO driver. It could
    > be something much simpler, like a flat file system. But we need to
    > agree what kind of interface we should have between the application and
    > the database (or persistence mechanism).

    We should clarify first. If you mean an interface for some reusable
    container library then it is one thing. If you consider the interface as a
    bridge between equal parties - the application and the DB - then it is
    another thing. As I said before I don't buy separation of application and
    data. So the only reason to have such protocol would be a legacy system...

    > I think SQL (or something
    > similar) is the best choice for many enterprise applications. You want
    > low-level interfaces like Map and List.

    I don't see how column, table, tuple are higher level ones. To me the
    issues of concurrency, invariants and constraints are quite orthogonal.
    Let's separate (1) queries (2) caching (3) concurrency and (4) relations.
    1..3 is fully applicable to lists and maps. So what makes abstract
    relations higher level than abstract maps? Surely not mathematics, because
    there they are equivalent. Also what?

    > That is probably the best
    > choice for low-level applications like telecom switches and embedded
    > control software, but for applications for logistics, production
    > control, human resource administration, these kind of interfaces are
    > too low-level.

    The line is actually drawn between standard solutions to common primitive
    problems and the solutions to be found. The application domain is of much
    lesser importance because in practically any domain it is easy to formulate
    a problem which would break any given solution.

    -- 
    Regards,
    Dmitry A. Kazakov
    http://www.dmitry-kazakov.de
    

  • Next message: frebe: "Re: OO vs. RDB challenge"

    Relevant Pages

    • Re: OO vs. RDB challenge
      ... ADT can be used to model tables, records, queries etc. ... But you need a backend RDBMS to provide the implementation, ... similar) is the best choice for many enterprise applications. ... low-level interfaces like Map and List. ...
      (comp.object)
    • Re: OO vs. RDB challenge
      ... A RDBMS should be used when you need some of its features like: ... For many applications - like FTP clients, mail clients, text editors ... I don't understand your question about RDBMS vs ADT. ...
      (comp.object)
    • Re: Disadvantages of Dependency Inversion?
      ... outside of device-driver-like applications. ... by subsystem B, and specifically, directly invokes ... but instead on the interface I; and we have introduced a newdependency ... implement the POSIX interface. ...
      (comp.object)
    • Re: Disadvantages of Dependency Inversion?
      ... outside of device-driver-like applications. ... by subsystem B, and specifically, directly invokes ... but instead on the interface I; and we have introduced a newdependency ... implement the POSIX interface. ...
      (comp.object)
    • Re: Disadvantages of Dependency Inversion?
      ... outside of device-driver-like applications. ... by subsystem B, and specifically, directly invokes ... but instead on the interface I; and we have introduced a newdependency ... implement the POSIX interface. ...
      (comp.object)