The dm class holds a list of tables and their relationships.
It is inspired by datamodelr,
and extends the idea by offering operations to access the data in the tables.
dm() creates a dm object from one or multiple tbl objects
(tibbles or lazy data objects).
new_dm() is a low-level constructor that creates a new dm object.
If called without arguments, it will create an empty dm.
If called with arguments, no validation checks will be made to ascertain that
the inputs are of the expected class and internally consistent;
use validate_dm() to double-check the returned object.
validate_dm() checks the internal consistency of a dm object.
dm_get_src() returns the dplyr source for a dm object.
All tables in a dm object must be from the same source,
i.e. either they are all data frames, or they all are stored on the same
database.
dm_get_con() returns the DBI::DBIConnection for dm objects.
This works only if the tables are stored on a database, otherwise an error
is thrown.
dm_get_tables() returns a named list of dplyr tbl objects
of a dm object.
Filtering expressions are NOT evaluated at this stage.
To get a filtered table, use dm_apply_filters_to_tbl(), to apply filters to all tables use dm_apply_filters()
is_dm() returns TRUE if the input is of class dm.
as_dm() coerces objects to the dm class