6 acoustic business rules
6.1 Introduction
The philosophy behind the acoustic database is that it will, as far as possible, contain raw, unprocessed data. As a consequence, minimal validation is carried out on the actual acoustic data (range/amplitude pairs). The nature of echosounder systems is that the raw acoustic data are an accurate and precise record of the acoustic amplitude at a given location at a given time and any processing, filtering or corrections should be applied during the analysis and use of the data. However, the associated data are subject to a number of validation rules, and are described in the following sections.
6.2 Summary of rules
The following are a list of business rules applying to the acoustic database. A business rule is a written statement specifying what the information system (i.e., any system that is designed to handle acoustic data) must do or how it must be structured.
There are three recognised types of business rules:
Fact - Certainty or an existence in the information system.
Formula - Calculation employed in the information system.
Validation - Constraint on a value in the information system.
Fact rules are shown on the ERD by the cardinality (e.g., one-to-many) of table relationships. Formula and Validation rules are implemented by referential constraints, range checks, and algorithms both in the database and during validation.
General rules
Some general rules are applied to all tables that contain latitude, longitude, date and time fields. In the sections that follow, only rules in addition to those below are listed.
1. All latitude values must be between -90.0 and 90.0 or be null.
2. All longitude values must be between -180 and 180 or be null.
3. All date/time fields must contain a valid date and time or be null.
6.2.1 bottompoints table
| ping_num |
Must be greater than or equal to 0. |
| depth |
Must be greater than or equal to 0. |
| previous_depth |
Must be greater than or equal to 0. |
6.2.2 equipment table
| date_withdrawn |
Must be after date established. |
6.2.3 filenote table
| ping_num |
Must be greater than or equal to 0. |
6.2.4 files table
| num_transmits |
Must be greater than or equal to 0. |
| min_data_depth |
Must be greater than or equal to 0. |
| max_data_depth |
Must be greater than or equal to max data depth. |
| dfile_size |
Must be greater than or equal to 0. |
| stop_date_time |
Must be after start date time. |
6.2.5 mbsregionslices table
| start_depth |
Must be greater than or equal to 0. |
| end_depth |
Must be greater than or equal to start depth. |
| start_vslice |
Must be greater than or equal to 0. |
| end_vslice |
Must be greater than or equal to end vslice. |
6.2.6 mbsspec table
| vertical_slice_size |
Must be greater than or equal to 0. |
6.2.7 mbssst table
| length |
Must be greater than or equal to 0. |
| absorption |
Must be greater than or equal to 0. |
6.2.8 padcs table
| frequency |
Must be greater than or equal to 0. |
6.2.9 ping table
| ping_num |
Must be greater than or equal to 0. |
| speed |
Must be greater than or equal to 0 or null. |
| heading_true |
Must be within 0 to 360 inclusive or null. |
| heading_apparent |
Must be within 0 to 360 inclusive or null. |
| transducer_depth |
Must be greater than -5 m or null. |
| bottom_distance |
Must be greater than 0 or null. |
| wind_speed |
Must be greater than 0 or null. |
| wind_dir |
Must be within 0 to 360 inclusive or null. |
6.2.10 pingattitude table
| sample_num |
Must be greater than or equal to 0. |
6.2.11 region table
| slice_size |
Must be greater than or equal to 0. |
| vert_slice_size |
Must be greater than or equal to 0. |
| shape |
Must be Rectange or Polygon. |
6.2.12 regionpoints table
| ping |
Must be greater than or equal to 0. |
| depth |
Must be greater than or equal to 0. |
| sequence_num |
Must be greater than or equal to 0. |
6.2.13 slplussrt table
| depth |
Must be greater than or equal to 0. |
| g |
Must be greater than or equal to 0. |
| v_t |
Must be greater than or equal to 0. |
| c |
Must be greater than or equal to 0. |
| valid_to |
Must be after valid from. |
6.2.14 svcorrectionfactors table
| sv_correction_factor |
Must be greater than or equal to 0. |
6.2.15 transducers table
| depth_rating |
Must be greater than or equal to 0 or null. |
| beam_angle_long |
Must be greater than or equal to 0 or null. |
| beam_angle_trans |
Must be greater than or equal to 0 or null. |
| directivity |
Must be greater than or equal to 0 or null. |
| effective_beam_angle |
Must be greater than or equal to 0 or null. |
| transmit_response |
Must be greater than or equal to 0 or null. |
| receive_response |
Must be greater than or equal to 0 or null. |
| angle_factor |
Must be greater than or equal to 0 or null. |
6.2.16 voyage table
| stop_date |
Must be after start date. |
6.2.17 vtvariation table
| valid_to |
Must be after valid from. |
6.2.18 waterproperties table
| absorption |
Must be greater than or equal to 0. |
| sound_speed |
Must be greater than or equal to 0. |
| frequency |
Must be greater than or equal to 0. |