Mission Evaluation Databases

Jesse Clark

2012

When is it safe to launch a space mission?

When the mission evaluation manager decides it is safe

based on input from each team
(propulsion, avionics, life support, etc)

based on reports from technicians that have been analyzed by engineers and closed as acceptably safe.

“We don't fly with open paper.”
So why do things still go wrong?

Paper

With a paper-based system, searching or summarizing all outstanding reports can take hours, in which time conditions can change.

SQL

We don't fly with open paper.


  SELECT
    COUNT(*)
  FROM
    problem_reports
  WHERE
    status = "OPEN";
            

Which components should we re-check in cold weather?


  SELECT
    component, COUNT(*), MAX(severity)
  FROM
    problem_reports
  WHERE
    description LIKE "%cold weather%"
  GROUP BY
    component
  ORDER BY
    MAX(severity) DESC;
            

Have any parts from Manufacturer X
had problems in the last 3 years?
(A problem can link to a part.)


  SELECT
    part_id
  FROM
    problem_reports
    LEFT JOIN parts ON parts.id = problem_reports.part_id
  WHERE
    parts.manufacturer = "X"
    AND
    problem_reports.date > DATE_SUB(NOW(), INTERVAL 3 YEAR);
            

  • Active community building open-source tools for similar problems such as Customer Relationship Management.
  • Find one that is close to the target domain.
    Using a software bug-tracking system allows developers to “eat their own dogfood” as they work on it.
  • Change vocabulary to make it match the domain fully.
  • Add custom functionality by writing new HTML frontend and SQL backend code.

Web Application

  • Manage user accounts
  • Edit schemas
  • Display complex records
  • Draw charts and graphs
  • Automatically generate complex queries
  • Automatically generate complex queries

    Have any parts from Manufacturer X
    had problems in the last 3 years?
    (A problem can link to multiple parts.)


  SELECT
    problem_reports.id, title, severity, likelihood, status
  FROM
    problem_reports
    LEFT JOIN problem_parts
      ON problem_parts.problem_id = problem_reports.id
    LEFT JOIN parts
      ON problem_parts.part_id = parts.id
  WHERE
    parts.manufacturer = "X"
    AND
    parts.maintenance_date > DATE_SUB(NOW(), INTERVAL 3 YEAR);
  GROUP BY
    problem_reports.id
            

Web Services

  • Display very complex records by loading partial views independently
  • Improve maintainability
    • Loosely couple frontend to backend
    • Deploy new features without impacting existing features
  • Interface with outside tools
    • Import / Export
    • Custom reports and analytics
    • Very large file attachments

Mission Evaluation Databases

Jesse Clark

Jesse.Clark@uts.edu.au