R
Rainer Weikusat
I just came accross the following statement in the DBI::Class
documentation,
,----
| Class:BI provides a convenient abstraction layer to a database.
|
| It not only provides a simple database to object mapping layer, but
| can be used to implement several higher order database functions
| (triggers, referential integrity, cascading delete etc.), at the
| application level, rather than at the database.
|
| This is particularly useful when using a database which doesn't
| support these (such as MySQL), or when you would like your code to be
| portable across multiple databases which might implement these things
| in different ways.
|
| In short, Class:BI aims to make it simple to introduce 'best
| practice' when dealing with data stored in a relational database.
`----
I strongly disagree with the opinion that it would be 'best practice'
to treat a RDBMS as 'dumb' system for storing structured data in
binary files and reimplement all the features it already has in
application code on top of it. This rather strikes me as 'back to the
1960!' idea which likely comes from the fact that RDBMSes, originally
supposed to enable people to perform operations on datasets without
having to learn programming in some imperative language first, were so
successful that people who already know how to program in an imperative
language are more or less forced to use them but - of course - they
don't have the slightest interest in actually learning how to so do
efficiently, especially if this means 'learning a second' (or even
more than 'the second') other programming language.
Ironically, this step backwards in the last century markets itself as
modern ...
documentation,
,----
| Class:BI provides a convenient abstraction layer to a database.
|
| It not only provides a simple database to object mapping layer, but
| can be used to implement several higher order database functions
| (triggers, referential integrity, cascading delete etc.), at the
| application level, rather than at the database.
|
| This is particularly useful when using a database which doesn't
| support these (such as MySQL), or when you would like your code to be
| portable across multiple databases which might implement these things
| in different ways.
|
| In short, Class:BI aims to make it simple to introduce 'best
| practice' when dealing with data stored in a relational database.
`----
I strongly disagree with the opinion that it would be 'best practice'
to treat a RDBMS as 'dumb' system for storing structured data in
binary files and reimplement all the features it already has in
application code on top of it. This rather strikes me as 'back to the
1960!' idea which likely comes from the fact that RDBMSes, originally
supposed to enable people to perform operations on datasets without
having to learn programming in some imperative language first, were so
successful that people who already know how to program in an imperative
language are more or less forced to use them but - of course - they
don't have the slightest interest in actually learning how to so do
efficiently, especially if this means 'learning a second' (or even
more than 'the second') other programming language.
Ironically, this step backwards in the last century markets itself as
modern ...