database - Storing Waveforms in Oracle -
I am preparing a new laboratory database. I want to store raw results together for all tests. However, the results can be either a measurement or a raw wave. (See footer)
The case below is the ideal (and why)? ... or provide your own ideal choice.
test test_id * (other Test field)
Option 1: separate single values and wave results
test (1 - many) measurement (\ - too many) RAW_HEADER 1 - many RAW_point solutions RAW_HEADER measurement_id * raw_header_id * test_id (FK) test_id (FK) rec_time DATE as start_time measurement sample_rate RAW_POINT raw_header_id * (FK) point_index * raw_measurement
Option 2: Overlap common fields from option 1
Exam (1 - Excluding: - Multiple) Measurements (1 - many) RECORDING_POINT
Option 1
: Excluding:
& nbsp; & Nbsp; For signals & nbsp; & Nbsp; measurement
: measurement
sample_additional
& nbsp; & Nbsp; & Nbsp; & Nbsp; RAW_ POINT
: raw_header * (FK)
has been changed to measure_add * (FK)
& nbsp; & Nbsp; & Nbsp; & Nbsp; RAW_HEADER
: not required
Option 3: Encoded signal in Blob Test (1 - many) measurements
Measurement measure_If BLB
measurement for a single value measurement
and signal
NULL
scale
sample_tate and signal
stores the encoded data points for the signal
Option 4: Overlap normal areas, but Blobs
test (1 - many) measurement (1 - many) RAW_DATA measurement measurements _ _ _ * test_id (FK) rec_time DATE use RAW_DATA measurement_id * (FK) raw_data as the form of Blob In
measurement
is the solution for a single value Ment
measurement for signal
sample_rate
Legend:
-
<__ * _
After the star, the fields are the primary key. - After the
(FK)
field(FK)
indicate the foreign key constraint in the field. -
____
are all field types ofNUMBER
unless otherwise specified.
Other information: Raw wave data will be used in many ways: - Plotted (the plot looks correct) - filtered / smoother (for better presentation ) - Get value (maximum, time at minimum price, fall time, etc.)
In addition, the data will be acquired simultaneously on multiple channels. It would be useful to know that the cost of Channel 2 is at a time when Channel 1 reaches the first 500 (some units).
A wave is usually around 4,000 - 25,000 data points.
Other thoughts / questions: Can a part of a blob be returned? In other words, can I remove 4 bytes starting with 4000?
Is an oakical ocular type blob, so that values can be read by Oracle (max: to get minimum, etc.)
Note: < / Strong> This is a post with better developed options.
Whether to believe it or not, I do not think there is really enough information here to make sure for the sake of saying. For example, how will the results usually be processed? Will they be conspirators, or perhaps they have done some sort of numerical analysis? How big is your wave?
Unless your raw results are usually small, I do not like option 1 for this application. To store a data point, there is too much storage overhead
To the lesser extent, the same convulsions will apply to option 2. Option 3: The way I would like to go, I once developed an app to see the waves with an attack of electricity - millions of points per wavelength are the only viable option for that kind of dataset. There is a blob. And (again, depending on some unknown) I seriously consider storing data as binary float or doubles and processing with Java or external programs. Seriously, do you need access to your personal data points? Is not the array being loaded and indexing it so far is simple, more compact and efficient?
Comments
Post a Comment