Skip to content

Table: ndb.aggregatechronologies#

Description#

This table stores metadata for Aggregate Chronologies. An Aggregate Chronology refers to an explicit chronology assigned to a sample Aggregate. The individual Aggregate Samples have ages assigned in the AggregateSampleAges table. An Aggregate Chronology would be used, for example, for a set of packrat middens assigned to an AggregateDataset. The Aggregate Chronology is analogous to the Chronology assigned to samples from a single Collection Unit. An Aggregate may have more than one Aggregate Chronology, for example one in radiocarbon years and another in calibrated radiocarbon years. One Aggregate Chronology per Age Type may be designated the default, which is the Aggregate Chronology currently preferred by the database stewards.

TODO: Expand this description with: - What data does this table store? - What is the business/research purpose? - How is this data collected or generated? - Are there any important caveats or data quality issues?

Table Structure#

Visual Schema

Schema: ndb | Table Comment: This table stores metadata for Aggregate Chronologies. An Aggregate Chronology refers to an explicit chronology assigned to a sample Aggregate. The individual Aggregate Samples have ages assigned in the AggregateSampleAges table. An Aggregate Chronology would be used, for example, for a set of packrat middens assigned to an AggregateDataset. The Aggregate Chronology is analogous to the Chronology assigned to samples from a single Collection Unit. An Aggregate may have more than one Aggregate Chronology, for example one in radiocarbon years and another in calibrated radiocarbon years. One Aggregate Chronology per Age Type may be designated the default, which is the Aggregate Chronology currently preferred by the database stewards.

Statistics#

Metric Value
Row Count 7
Total Size 64 kB
Table Size 8192 bytes
Indexes Size 16 kB

Relationships#

Primary Key: aggregatechronid

Foreign Keys:

Referenced By:

TODO: Document which tables reference this table (will be auto-detected in validation).

Data Dictionary#

Column Type Nullable Default Constraints Description
aggregatechronid integer nextval('ndb.seq_aggregatec... PRIMARY KEY PK: An arbitrary Aggregate Chronology identification number
aggregatedatasetid integer - FOREIGN KEY Dataset to which the Aggregate Chronology applies. Field links to the AggregateDatasets table.
agetypeid integer - FOREIGN KEY Age type or units. Field links to the AgeTypes table.
isdefault boolean - - Indicates whether the Aggregate Chronology is a default or not. Default status is determined by a Neotoma data steward. Aggregate Datasets may have more than one default Aggregate Chronology, but may have only one default Aggregate Chronology per Age Type.
chronologyname character varying(80) - - Optional name for the Chronology.
ageboundyounger integer - - The younger reliable age bound for the Aggregate Chronology. Younger ages may be assigned to samples, but are not regarded as reliable. If the entire Chronology is considered reliable, AgeBoundYounger is assigned the youngest sample age rounded down to the nearest 10. Thus, for 72 BP, AgeBoundYounger = 70 BP; for -45 BP, AgeBoundYounger = -50 BP.
ageboundolder integer - - The older reliable age bound for the Aggregate Chronology. Ages older than AgeOlderBound may be assigned to samples, but are not regarded as reliable. This situation is particularly true for ages extrapolated beyond the oldest Chron Control. If the entire Chronology is considered reliable, AgeBoundOlder is assigned the oldest sample age rounded up to the nearest 10. Thus, for 12564 BP, AgeBoundOlder is 12570.
notes text - - Free form notes or comments about the Aggregate Chronology.
recdatecreated timestamp without time zone timezone('UTC'::text, now()) -
recdatemodified timestamp without time zone - -

TODO: Review column descriptions and add comments where missing.

Usage Examples#

Example 1: Basic Selection#

-- Get recent records from aggregatechronologies
SELECT *
FROM aggregatechronologies
ORDER BY aggregatechronid DESC
LIMIT 10;

Purpose: Retrieve the 10 most recent records from aggregatechronologies

Example 2: Count Records#

-- Count total records
SELECT COUNT(*) as total_records
FROM aggregatechronologies;

Purpose: Get the total number of records in aggregatechronologies

Example 3: Filter by Date Range#

-- Get records within a date range
SELECT *
FROM aggregatechronologies
WHERE recdatecreated >= '2024-01-01'
  AND recdatecreated < '2025-01-01'
ORDER BY recdatecreated DESC;

Purpose: Retrieve records from aggregatechronologies within a specific date range

Example 4: Join with agetypes#

-- Join with related table
SELECT 
    t1.*,
    t2.*
FROM aggregatechronologies t1
INNER JOIN agetypes t2 
    ON t1.agetypeid = t2.agetypeid
LIMIT 100;

Purpose: Retrieve aggregatechronologies records with related data from agetypes

Example 5: Aggregate Data#

-- Aggregate records by aggregatedatasetid
SELECT 
    aggregatedatasetid,
    COUNT(*) as count
FROM aggregatechronologies
GROUP BY aggregatedatasetid
ORDER BY count DESC
LIMIT 10;

Purpose: Count records grouped by aggregatedatasetid

TODO: Add more specific examples relevant to common research questions or operational tasks.

Data Quality Notes#

TODO: Document: - Known data quality issues - Validation rules - Expected data ranges - Update frequency and mechanisms - Any ETL processes that populate this table

Maintenance#

  • Data Owner: TODO: Assign owner
  • Update Frequency: TODO: Document frequency
  • Last Major Schema Change: TODO: Document when schema last changed

TODO: Link to: - Related API endpoints - Data collection procedures - Analysis notebooks or reports that use this table - External ontologies or standards