Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re^2: Terminology: Is DBIx::Class an ORM?

by haukex (Bishop)
on Jun 02, 2021 at 17:26 UTC ( #11133436=note: print w/replies, xml ) Need Help??


in reply to Re: Terminology: Is DBIx::Class an ORM?
in thread Terminology: Is DBIx::Class an ORM?

Classical ORM is limited by the fact that it's mapping unidirectionally object language -> relational language.

I think I maybe see where you're coming from here. Are you talking about the automatic generation of a new OO API definition from an existing database schema, and the reverse operation of automatically generating a new database schema from an existing OO API? In that case, my answer would be: I thought several ORM frameworks are capable of that? It's been a while since I worked with them though so I'd have to look it up, which I don't have the time for right now, plus I'm not sure if I'm understanding your question correctly...?

Replies are listed 'Best First'.
Re^3: Terminology: Is DBIx::Class an ORM?
by LanX (Sage) on Jun 05, 2021 at 13:50 UTC
    > Are you talking about the automatic generation of a new OO API definition from an existing database schema, and the reverse operation of automatically generating a new database schema from an existing OO API?

    No.

    The fundamental definition of an ORM I found is to hold data model inside an object system which is made persistent with a DB server.

    That means mapping in one direction and the "data language" is limited to the semantics of the OOP model.

    But that's a one way street.

    Like with "Active Record".

    > I thought several ORM frameworks are capable of that?

    That would surprise me.

    Cheers Rolf
    (addicted to the Perl Programming Language :)
    Wikisyntax for the Monastery

      The fundamental definition of an ORM I found is to hold data model inside an object system which is made persistent with a DB server. That means mapping in one direction and the "data language" is limited to the semantics of the OOP model.

      As you know, academic discussions about excact terminology are not my strong suit, so I don't think I can help much there...

      > I thought several ORM frameworks are capable of that?
      That would surprise me.

      I checked, Hibernate is (one of) the framework(s) I worked with years ago, and there are tools to both generate class definitions from the database and generate database definitions from a class structure (I assume the former is less common).

        ah thanks for the link to Hibernate, Java is not my forte, but has a normative power when it comes to terminology.

        WP - which is not necessarily the best source, but links to some - says

        > It provides a framework for mapping an object-oriented domain model to a relational database.

        which is my understanding of ORMs

        but

        > Hibernate handles object–relational impedance mismatch problems by replacing direct, persistent database accesses with high-level object handling functions.

        so let's compromise that there are two kinds of ORMs, the basic ones which fail to address the mismatch and the advanced ones.

        In the end it's like quarreling if Canadians are Americans. =)

        Cheers Rolf
        (addicted to the Perl Programming Language :)
        Wikisyntax for the Monastery

        update

        Or rather if C++ is C ... ?

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11133436]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (3)
As of 2021-09-18 17:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?