Provided by: libdbix-class-perl_0.082821-1_all bug

NAME

       DBIx::Class::Manual::Glossary - Clarification of terms used.

INTRODUCTION

       This document lists various terms used in DBIx::Class and attempts to explain them.

DBIx::Class TERMS

   DB schema
       Refers to a single physical schema within an RDBMS. Synonymous with the terms 'database',
       for MySQL; and 'schema', for most other RDBMS(s).

       In other words, it's the 'xyz' _thing_ you're connecting to when using any of the
       following DSN(s):

         dbi:DriverName:xyz@hostname:port
         dbi:DriverName:database=xyz;host=hostname;port=port

   Inflation
       The act of turning database row data into objects in language-space. DBIx::Class result
       classes can be set up to inflate your data into perl objects which more usefully represent
       their contents. For example: DBIx::Class::InflateColumn::DateTime for datetime or
       timestamp column data.

       See also DBIx::Class::InflateColumn.

   Deflation
       The opposite of "Inflation". Existing perl objects that represent column values can be
       passed to DBIx::Class methods to store into the database. For example a DateTime object
       can be automatically deflated into a datetime string for insertion.

       See DBIx::Class::InflateColumn and other modules in that namespace.

   ORM
       Object-relational mapping, or Object-relationship modelling. Either way it's a method of
       mapping the contents of database tables (rows), to objects in programming-language-space.
       DBIx::Class is an ORM.

   Relationship
       In DBIx::Class a relationship defines the connection between exactly two tables. The
       relationship condition lists the columns in each table that contain the same values. It is
       used to output an SQL JOIN condition between the tables.

   Relationship bridge
       A relationship bridge, such as "many_to_many" defines an accessor to retrieve row contents
       across multiple relationships.

       The difference between a bridge and a relationship is, that the bridge cannot be used to
       "join" tables in a "search", instead its component relationships must be used.

   Schema
       A Schema object represents your entire table collection, plus the connection to the
       database. You can create one or more schema objects, connected to various databases, with
       various users, using the same set of table "Result Class" definitions.

       At least one DBIx::Class::Schema class is needed per database.

   Result Class
       A Result class defines both a source of data (usually one per table), and the methods that
       will be available in the "Result" objects created using that source.

       One Result class is needed per data source (table, view, query) used in your application,
       they should inherit from DBIx::Class::Core.

       See also: DBIx::Class::Manual::ResultClass

   ResultSource
       ResultSource objects represent the source of your data, these are sometimes (incorrectly)
       called table objects.

       ResultSources do not need to be directly created, a ResultSource instance is created for
       each "Result Class" in your "Schema", by the proxied methods "table" and "add_columns".

       See also: "METHODS" in DBIx::Class::ResultSource

   ResultSet
       This is an object representing a set of conditions to filter data. It can either be an
       entire table, or the results of a query. The actual data is not held in the ResultSet, it
       is only a description of how to fetch the data.

       See also: "METHODS" in DBIx::Class::ResultSet

   Result
       Result objects contain your actual data. They are returned from ResultSet objects.  These
       are sometimes (incorrectly) called row objects, including older versions of the DBIC
       documentation.

       See also: DBIx::Class::Manual::ResultClass

   Row
       See Result.

   Object
       See Result.

   Record
       See Result.

   prefetch
       Similar to a join, except the related result objects are fetched and cached for future
       use, instead of used directly from the ResultSet.  This allows you to jump to different
       relationships within a Result without worrying about generating a ton of extra SELECT
       statements.

SQL TERMS

   CRUD
       Create, Read, Update, Delete.  A general concept of something that can do all four
       operations (INSERT, SELECT, UPDATE, DELETE), usually at a row-level.

   Join
       This is an SQL keyword, it is used to link multiple tables in one SQL statement. This
       enables us to fetch data from more than one table at once, or filter data based on content
       in another table, without having to issue multiple SQL queries.

   Normalisation
       A normalised database is a sane database. Each table contains only data belonging to one
       concept, related tables refer to the key field or fields of each other. Some links to
       webpages about normalisation can be found in the FAQ.

   Related data
       In SQL, related data actually refers to data that are normalised into the same table.
       (Yes. DBIC does mis-use this term.)

FURTHER QUESTIONS?

       Check the list of additional DBIC resources.

COPYRIGHT AND LICENSE

       This module is free software copyright by the DBIx::Class (DBIC) authors. You can
       redistribute it and/or modify it under the same terms as the DBIx::Class library.