The wordy description of the DB:
1) Our CAS system will store the catalogues. Each catalogue is the collection of different tables. Each catalogue should contain one or more tables.
2) The names of the catalogues should be unique, as well as the the names of tables of the SAME catalogue.
3) The tables of each catalogue should reside in separate schemas (to have different namespaces). The name of the schema should be equal to the catalogue name.
4) All the metadata about the CAS system, its tables, catalogues should reside in separate schema (currently "cas_metadata").
1) The main system table of CAS is the table "catalog_list". That table should reference all the catalogues in the system with their
2) The second system table of CAS is the table "table_list". That table should list all the tables in all catalogues. Each record should contain
3) The third system table of CAS is the table attribute_list. That table should list the columns for all data-tables in CAS. Each record of this table should contain
4) Next system table is the table with datatypes ("datatype_list"). The purpose of the table is to define the list of the "external" types (from VO specification for example) and (probably) define the mapping between the external and internal types. That table should contain:
5) Next system table is the table with UCD's ("ucd_list"). The purpose of that table is the list of UCD's together with their normal (wordy) explanation to have the possibility to detect situations like multiple UCD to one physical entity, and just to manage better and separately the UCD part of CAS. That table should contain:
Each component of the system also have each own extendable list of properties:
6) The table "catalog_property_list" contain the list of properties which can be set up for the catalog. That table should contain:
7) The table listing the properties for all catalogues (table "catalog_property_map"). It should contain:
8) The table "table_property_list" contain the list of properties which can be set up for the tables. That table should contain:
9) The table listing the properties for all tables (table "table_property_map"). It should contain:
10) The table "attribute_property_list" contain the list of properties which can be set up for the attributes. That table should contain:
11) The table listing the properties for all attributes (table "attribute_property_map"). It should contain:
The graph of the db (by "dbwrench")
The formal SQL initialization of the DB system is available here – http://vo.astronet.ru/cgi-bin/viewvc.cgi/sql/trunk/initdb.sql?root=cas&view=markup
The SQL interface functions is available here http://vo.astronet.ru/cgi-bin/viewvc.cgi/sql/trunk/cas_funcs.sql?root=cas&view=markup