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 ofNUMBERunless 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