Data Relationships, Storage and Retrieval, Quality Issues
Database Structure, Types, Operation, Software and Maintenance
Basics of Database Design
Queries and Reports
Special Requirements of Real-Time Process Databases
Data Documentation and Security
28.1 서론(Introduction)
Data Management 데이터 관리
데이터는 산업 공정 운영의 생명줄입니다. 오늘날과 같은 경쟁 환경에서 요구되는 효율성, 품질, 유연성, 비용 절감을 달성하기 위해서는 정확하고 신뢰할 수 있는 정보가 지속적으로 흐르는 것이 필수적입니다. 우수한 데이터 관리는 조직의 요구에 맞는 적절한 정보를 적시에 제공할 수 있도록 합니다. 데이터베이스는 이러한 정보를 구조화된 저장소에 보관하며, 다양한 형식으로 쉽게 검색하고 표시할 수 있도록 지원합니다.
28.2 데이터베이스 구조(Database Structure)
일반적인 데이터베이스의 기본 구조는 레코드(records)와 필드(fields)로 구성됩니다. 필드는 특정 유형의 정보를 포함하며, 예를 들어 특정 계측기의 측정값이나 특정 실험의 결과값 등이 이에 해당합니다. 레코드는 일반적으로 한 시점에 수집된 관련 필드 값들의 집합으로, 공장 내 특정 위치와 관련된 데이터를 포함합니다. 스프레드시트(spreadsheet)에서는 필드가 보통 열(변수)이고, 레코드는 행(측정값 집합)입니다.
데이터베이스에서 다양한 방식으로 정보를 처리하면서 이를 추적하기 위해서는 각 레코드를 식별할 수 있는 키 필드(key field)를 선택하는 것이 바람직합니다. 이는 사람이 이름을 통해 서로를 식별하는 것과 유사합니다. 그림 28-1은 일반적인 공정 데이터베이스의 일부 구조를 보여주며, 날짜 및 시간 정보(date and time stamp)가 키 필드로 사용됩니다.
28.3 데이터 관계(Data Relationships)
데이터베이스는 사람, 제품, 기계, 측정값, 결제, 배송 등 거의 모든 엔티티(entity) 간의 관계를 설명합니다. 가장 단순한 형태의 데이터 관계는 일대일(one-to-one) 관계로, 하나의 엔티티 a가 오직 하나의 엔티티 b와 연결되는 경우입니다. 예를 들어, 고객 이름과 사업장 주소는 일대일 관계입니다.
하지만 경우에 따라 일대다(one-to-many) 관계가 존재할 수 있습니다. 예를 들어, 한 고객은 여러 번 구매를 했을 수 있으므로, 고객 이름과 구매 주문 번호(purchase order number)는 일대다 관계를 가집니다. 또 다른 경우로는 다대다(many-to-many) 관계가 존재할 수 있습니다. 한 공급업체(supplier)는 여러 제품을 제공할 수 있고, 하나의 제품은 여러 공급업체로부터 공급받을 수 있습니다.
데이터베이스 설계자는 데이터 엔티티 간의 연결을 설명하기 위해 엔티티-관계 다이어그램(entity-relationship diagrams, 그림 28-2)을 자주 사용합니다.
28.4 데이터베이스 유형(Database Types)
가장 단순한 형태의 데이터베이스는 플랫 파일(flat file)이라고 하며, 이는 전자적으로 파일 서랍을 모사한 것으로, 폴더 하나당 하나의 레코드를 포함하며, 스프레드시트(spreadsheet)의 행과 열로 구성된 2차원 표 형식 외에는 내부 구조가 없습니다. 플랫 파일 데이터베이스는 복잡성이 낮은 소규모 애플리케이션에는 충분히 적합합니다.
하지만 데이터에 일대다(one-to-many) 또는 다대다(many-to-many) 관계가 포함되어 있는 경우, 플랫 파일 구조로는 이러한 연결을 적절히 표현할 수 없습니다. 필요한 곳마다 정보를 중복해서 저장하려는 유혹이 생기지만, 이렇게 하면 나중에 정보를 업데이트할 때 일부는 수정하고 일부는 누락하게 되어 데이터베이스에 불일치하거나 부정확한 정보가 포함될 수 있습니다. 그 결과, 재고 부족(out-of-stock), 잘못된 고객 연락처 정보, 오래된 제품 설명 등의 문제가 발생할 수 있습니다.
보다 나은 해결책은 관계형 데이터베이스(relational database)를 사용하는 것입니다. 관계형 데이터베이스의 핵심 개념은 모든 정보가 테이블(table) 형태로 저장된다는 점이며, 데이터 자체뿐만 아니라 데이터 간의 관계도 테이블로 표현됩니다. 각 테이블에는 다른 테이블과 연결하기 위한 키 필드(key field)가 포함되어 있습니다. 그림 28-3은 특정 산업 플랜트에 대한 고객, 제품, 주문 데이터를 포함하는 관계형 데이터베이스를 보여줍니다.
28.5 데이터베이스 설계의 기초(Basics of Database Design)
우수한 데이터베이스 설계의 기본 원칙은 데이터베이스가 포함하는 정보를 원하는 방식으로 활용할 수 있도록 구성하는 것입니다. 데이터베이스의 크기, 변경 빈도(volatility), 원하는 상호작용 방식, 사용자들의 지식 및 경험 수준 등의 요소가 최종 설계에 영향을 미칩니다.
키 필드(key field)는 각 레코드에 대해 고유해야 합니다. 두 개의 레코드가 동일한 키 값을 가지게 되면, 검색이 잘못되거나 중요한 정보에 접근하지 못하는 문제가 발생할 수 있습니다.
기타 필드의 정의도 중요합니다. 검색하거나 정렬하고자 하는 항목은 반드시 별도의 필드로 분리하여 저장해야 합니다. 예를 들어, 인사 데이터베이스에서 이름과 성을 하나의 필드에 함께 저장하면 성 기준으로 정렬하는 것이 불가능해집니다.
28.6 질의 및 보고서(Queries and Reports)
질의(query)는 데이터베이스에 특정 조건을 만족하는 정보를 반환하도록 요청하는 것입니다. 조건(criteria)은 일반적으로 등호(equal), 초과(greater than), 미만(less than), AND, OR 등의 연산자를 사용한 논리 표현(logical expression)으로 기술됩니다. 조건이 참(TRUE)으로 평가되는 레코드만 반환됩니다.
질의는 대화형 화면(interactive screens)을 통해 수행하거나, SQL(Standard Query Language)과 같은 질의 언어(query languages)를 사용하여 실행할 수 있습니다. SQL은 복잡한 질의를 작성하고 재사용을 위해 저장하는 데 도움을 주며, 데이터베이스 생성 및 유지 관리에도 널리 사용됩니다. 그림 28-4는 일반적인 SQL 질의 예시를 보여줍니다.
보고서는 데이터베이스에서 선택된 정보를 추출하여 특정 사용자 그룹이 원하는 사전 정의된 형식으로 제공합니다. 특정 보고서의 형식 및 데이터 요구사항은 저장해두었다가 최신 데이터를 기반으로 원하는 만큼 반복 생성할 수 있습니다.
보고서는 대화형 화면(interactive screens)이나 보고서 정의 언어(report definition language)를 사용하여 생성할 수 있습니다. 그림 28-5는 보고서 생성 화면을 보여줍니다.
Figure 28-5: Report Generation Screen
28.7 데이터 저장 및 검색(Data Storage and Retrieval)
데이터베이스가 필요한 디스크 저장 용량은 여러 요인에 따라 달라집니다. 예를 들어, 데이터베이스 내 레코드 수, 각 레코드의 필드 수, 각 필드에 포함된 정보의 양과 유형, 데이터가 데이터베이스에 보존되는 기간 등이 이에 해당합니다. 지난 수십 년간 컴퓨터의 대용량 저장 장치는 빠르게 확장되고 비용은 감소했지만, 대량의 데이터를 활용하려는 인간의 창의력도 이에 맞춰 발전해왔습니다. 예를 들어, 대형 유통업체인 월마트(Wal-Mart)가 고객 구매 경향을 추적하기 위해 사용하는 매우 큰 데이터베이스는 수 테라바이트(terabytes, 수조 바이트)의 저장 공간을 차지합니다.
이러한 대규모 데이터베이스를 관리하는 데는 여러 가지 과제가 따릅니다. 수 테라바이트 규모의 데이터베이스에서 단순한 질의(query)를 수행하는 것조차 매우 느려질 수 있습니다. 방대한 데이터 양으로 인해 중요한 데이터 간의 관계가 가려질 수도 있습니다. 이러한 문제에 대응하기 위해 데이터 마이닝(data mining) 기술이 개발되어 대량의 정보를 탐색하고 필요한 정보를 추출할 수 있도록 지원합니다. 하루에도 수백만 건의 수정이 발생할 수 있는 데이터베이스에서 일관되고 오류 없는 데이터를 유지하는 것도 또 다른 과제입니다.
별도로 개발된 두 개 이상의 데이터베이스를 상호 연결하거나 병합할 때도 어려움이 발생합니다. 예를 들어, 두 회사가 합병할 경우 각 회사의 데이터베이스를 통합해야 할 필요가 생깁니다. 단일 회사 내에서도 데이터 자산을 활용할 수 있는 기회에 대한 인식이 높아지면서, 경영진은 회사 전체의 데이터를 통합하여 방대한 데이터 웨어하우스(data warehouse)를 구축하려는 프로젝트를 추진할 수 있습니다. 이러한 통합 프로젝트는 대부분 장기간이 소요되며 비용도 많이 들고, 실패율도 높습니다. 그러나 성공할 경우, 기업은 강력한 데이터 자원을 확보할 수 있습니다.
데이터 저장 요구를 줄이기 위해, 특히 공정 데이터나 기타 수치 데이터의 경우에는 데이터 샘플링(data sampling), 필터링(filtering), 압축(compression) 기술이 자주 사용됩니다. 예를 들어, 공정 변수의 측정값을 1분마다가 아닌 10분마다 수집하면, 단순한 계산으로 원래 데이터 양의 10%만 저장하면 됩니다. 하지만 이러한 절감에는 대가가 따릅니다. 10분보다 짧은 시간 간격에서 발생하는 공정 변동에 대한 기록이 손실되며, 일부 데이터 분석 방법에서는 왜곡된 샘플링값(aliasing)이 생성될 수 있습니다. 데이터 필터링(data filtering)은 노이즈로 판단되는 특정 값이나 변동을 제거하기 위해 자주 사용됩니다. 예를 들어, 사전 정의된 범위를 벗어난 값이나 특정 속도 이상으로 발생하는 변화는 제거될 수 있습니다.
데이터 압축 알고리즘(data compression algorithms)은 변수의 최근 값 주변에 변동 범위(band of variation)를 정의하고, 해당 값이 범위를 벗어날 때만 변경 사항을 기록합니다(그림 28-6 참조). 기본적으로 이 알고리즘은 최근 값들 주변에 데드밴드(dead band)를 설정하고, 그 범위 내의 변화는 중요하지 않다고 간주합니다. 새로운 값이 기록되면, 해당 값을 기준으로 압축 데드밴드를 재정의하여 변수의 장기적인 추세를 따라갑니다. 이 기술군의 세부 변형은 값이 크게 변하지 않더라도 일정 시간마다 값을 기록하거나, 변수 값이 빠르게 변할 때 데드밴드의 폭과 민감도를 조정하는 기능을 포함합니다.
컴퓨터 성능이 향상되고 사용자 인터페이스가 개선됨에 따라, 실시간으로 업데이트되는 데이터베이스가 점점 더 일반화되었습니다. 이 경우, 데이터 입력 작업자는 화면상의 입력 양식(form)에 거래 정보를 입력하여 기본 마스터 파일(master file)을 직접 수정합니다. 각 필드에 내장된 범위 및 일관성 검사(range and consistency checks)는 잘못된 데이터 입력 가능성을 최소화해 줍니다.
빠르고 신뢰할 수 있는 컴퓨터 네트워크와 지능형 원격 장치의 등장으로 인해, 거래 정보는 다른 소프트웨어 패키지, 다른 컴퓨터, 또는 휴대용 전자 장치에서 사람의 개입 없이 자동으로 입력될 수 있습니다. 항공 예약 시스템과 같이 데이터베이스를 실시간으로 유지하는 것이 이제는 가능해졌습니다.
업데이트 요청이 언제든지 어떤 레코드에 대해서도 도착할 수 있게 되면서(과거의 일괄 처리(batch) 환경에서는 컴퓨터 관리자가 업데이트 시점을 제어했음), 두 명 이상의 사용자 또는 장치가 동시에 동일한 정보를 수정하려는 상황에 대비해야 합니다. 이를 방지하기 위해 파일 및 레코드 잠금(file and record locking) 방식이 개발되었으며, 수정 중인 파일이나 레코드에 대한 접근을 차단하여 첫 번째 사용자의 변경 작업이 완료될 때까지 다른 사용자가 해당 데이터에 접근하지 못하도록 합니다.
기타 데이터베이스 작업으로는 특정 조건을 만족하는 레코드를 검색하거나(예: 특정 변수 값이 임계값보다 큰 경우), 데이터베이스를 정렬하는 작업이 있습니다. 검색은 앞서 설명한 질의(query)를 통해 수행되며, 정렬(sort)은 오름차순(예: A에서 Z) 또는 내림차순(Z에서 A)으로 설정할 수 있습니다. 또한 정렬 내에서 또 다른 정렬을 수행할 수도 있습니다(예: 부서 내에서 청구 번호 기준 정렬). 그림 28-8은 이러한 정렬 예시를 보여줍니다.
28.9 실시간 공정 데이터베이스의 특별 요구사항(Special Requirements of Real-Time Process Databases)
데이터 소스가 실시간 산업 공정(real-time industrial process)일 경우, 새로운 고려사항들이 발생합니다. 실시간 공정 데이터베이스의 모든 데이터는 공장 내 위치(location)와 타임스탬프(timestamp)와 연관되어 있으며, 이 정보는 데이터와 함께 반드시 유지되어야 합니다. 실시간 공정 측정값에는 “유효 기간(expiry date)”이 존재하며, 해당 값을 사용하는 애플리케이션은 사용 전에 그 값이 여전히 유효한지를 확인해야 합니다.
데이터는 측정기기(measuring instruments)로부터 수집되는 경우가 많으며, 이로 인해 정확도(accuracy)와 신뢰성(reliability)에 대한 고려가 필요합니다. 연속 공정(continuous process)의 경우, 데이터베이스에 저장된 값은 지속적으로 변화하는 공정 변수(process variable)의 샘플을 나타냅니다. 샘플링 시점 사이에 발생한 변수의 변화는 기록되지 않기 때문에 손실될 수 있습니다.
샘플링 빈도(sampling frequency)의 결정은 정보의 양(높은 샘플링 속도)과 저장 공간 절약(낮은 샘플링 속도) 사이의 균형을 고려한 절충입니다. 많은 공정 데이터베이스는 앞서 설명한 바와 같이 데이터를 압축(compress)하여 제한된 디스크 공간에 더 많은 데이터를 저장할 수 있도록 지원합니다.
실시간 공정 데이터베이스의 또 다른 중요한 기능은 컴퓨터나 공정의 이상 상황(upsets) 발생 시 복구 기능을 갖추고, 최소한의 공정 정보를 제공하여 안전한 비상 운영 조건(safe fallback operating condition)을 유지하거나 질서 있는 셧다운(orderly shutdown)을 지원하는 것입니다. 공정 플랜트는 손상된 데이터베이스를 복구하는 데 몇 시간 또는 며칠을 소요할 여유가 없습니다.
실시간 공정 데이터베이스를 사용하는 대부분의 플랜트는 과거 공정 운영 이력을 보관하기 위해 데이터를 아카이브(archive)합니다. 최근 데이터는 플랜트의 운영 및 제어 컴퓨터의 디스크에 저장되며, 오래된 데이터는 오프라인 디스크 드라이브나 CD와 같은 아카이브 저장 매체(archival storage media)에 기록됩니다. 오늘날 대용량 저장 장치의 비용이 낮기 때문에, 수년간 공정 데이터를 보존하지 않을 이유는 없습니다.
28.10 데이터 품질 문제(Data Quality Issues)
데이터 품질(data quality)은 해당 데이터가 의도된 용도에 적합한지를 의미합니다. 예를 들어, 정부 기관에 제출할 수질 보고서를 작성하기 위한 데이터는 제지 공정의 습부(wet end)를 빠르게 제어하기 위한 데이터와는 다릅니다.
데이터 품질은 단순히 숫자의 속성뿐만 아니라, 데이터베이스 환경에서 해당 데이터가 얼마나 접근 가능하고(accessible), 이해하기 쉬우며(understandable), 활용 가능(usable)한지도 포함합니다. 그림 28-9는 데이터 품질의 다양한 차원(dimensions) 또는 측면(aspects)을 보여줍니다.
산업 플랜트에서 수집되는 데이터는 종종 품질이 낮습니다. 고장난 계측기나 통신 링크로 인해 특정 변수에 대해 값이 누락된 구간이 발생할 수 있습니다. 극단적으로 범위를 벗어난 값(outliers)은 기록 오류, 통신 장애, 센서 고장 등으로 인해 발생할 수 있습니다. 간헐적으로 신뢰성이 떨어지는 센서나 통신 링크는 과도한 노이즈 변동성을 가진 데이터 시리즈를 생성할 수 있습니다.
폐쇄 루프 제어(closed control loop) 내에서 수집된 데이터는 본래 공정의 변동성보다는 제어 동작의 영향을 반영할 수 있습니다. 그림 28-10은 공정 데이터에서 발생할 수 있는 여러 문제를 보여줍니다. 이러한 모든 요인으로 인해, 통계 분석이나 기타 분석을 수행하기 전에 데이터를 광범위하게 전처리(preprocessing)해야 하는 경우가 많습니다. 경우에 따라 가장 심각한 데이터 문제는 먼저 수정한 후, 분석을 시작하기 전에 두 번째 측정 시리즈를 수집해야 할 수도 있습니다.
28.11 데이터베이스 소프트웨어(Database Software)
많은 유용한 데이터베이스는 MS Excel이나 MS Access와 같은 범용 소프트웨어를 사용하여 구축됩니다. 질의(query) 및 보고서(report) 요구사항이 간단하고, 다른 컴퓨터나 장치와의 실시간 상호작용이 필요하지 않은 경우, 이러한 방식은 실용적이고 비용 효율적인 접근 방식이 될 수 있습니다.
그보다 한 단계 높은 수준의 데이터베이스는 Oracle과 같은 범용 비즈니스 데이터베이스입니다. 기업 표준으로 채택된 데이터베이스를 선택하면, 해당 데이터베이스는 기업 전체의 데이터 환경과 원활하게 연동되며, 강력한 질의 및 보고 기능을 활용할 수 있습니다.
하지만 비즈니스용 데이터베이스는 실시간 공정 환경에서 요구되는 많은 기능을 제공하지 못합니다. 실시간 공정 정보 시스템(real-time process information system) 소프트웨어 패키지는 일반적인 용도 또는 특정 산업에 맞게 설계되어 있으며, 오프라인으로 작동하거나 공장 전체의 공정 제어 및 보고 시스템과 완전히 통합되어 운영될 수 있습니다. 물론, 이러한 고도화된 수준의 시스템은 비용과 복잡성도 그에 따라 증가하는 경향이 있습니다.
28.12 데이터 문서화(Data Documentation)
적절한 데이터 문서화(data documentation)는 데이터베이스 설계에서 자주 간과되는 부분입니다. 데이터베이스의 내용이 공장이나 사무실의 공정 및 제품과 연결되지 않으면, 데이터베이스는 단순한 숫자 덩어리에 불과합니다. 특히 공정 변수(process variable)의 값과 같은 수치 필드에 대해 문서화는 매우 중요합니다.
최소한 다음과 같은 정보는 반드시 제공되어야 합니다:
- 측정 위치(location) 및 빈도(frequency)
- 태그 번호(tag number, 가능할 경우)
- 값의 획득 방법(센서, 실험실 테스트, 패널 판독 등)
- 일반적인 운전 값 및 정상 범위(normal range)
- 측정의 정확도(accuracy) 및 신뢰성(reliability)
- 측정에 영향을 줄 수 있는 제어기(controller)
공정 시간 지연(process time delays) 정보도 유용하며, 이를 통해 값의 지연(lag)을 설정하고 시간 오차(time offset)를 포함한 상관관계를 탐지할 수 있습니다. 측정 위치가 표시된 공정 다이어그램(process diagram)은 데이터베이스의 보조 자료로 매우 유용합니다.
28.13 데이터베이스 유지관리(Database Maintenance)
기본적인 지속적 유지관리 작업에는 데이터의 범위 초과 값(out-of-range data)이나 기타 이상(anomalies)에 대한 정기적인 점검이 포함됩니다. 종종 센서의 오작동이나 신호 누락(dropout)에 대한 첫 번째 경고는 해당 센서가 생성하는 데이터 특성의 변화로 나타납니다.
또한 사용자 요구가 변화함에 따라 데이터베이스 자체나 생성되는 보고서 및 화면(view)에 대한 수정 요청이 지속적으로 발생하게 됩니다. 이러한 변경을 데이터베이스의 무결성(integrity)과 빠르고 원활한 데이터 접근성을 유지하면서 구현하려면 데이터베이스 구조와 작동 방식에 대한 충분한 이해가 필요합니다.
데이터베이스 소프트웨어의 버전 업그레이드는 지속적인 유지관리 과제를 제시합니다. 모든 질의(query)와 보고서(report)는 새로운 버전에서 정상적으로 작동하는지 테스트해야 하며, 사용자 하드웨어나 소프트웨어 구성, 또는 플랜트의 다른 하드웨어 및 소프트웨어와의 상호작용에서 발생할 수 있는 문제를 탐지하고 수정해야 합니다. 새로운 소프트웨어 기능을 활용하거나 기존 작업 방식의 변경을 이해하기 위해 추가적인 사용자 교육이 필요할 수도 있습니다.
28.14 데이터 보안(Data Security)
데이터는 오늘날의 기업과 생산 플랜트에 없어서는 안 될 자원이 되었습니다. 다른 기업 자산과 마찬가지로, 데이터 역시 도난, 손상, 또는 파괴의 위험에 노출되어 있습니다. 첫 번째 방어선은 사용자에게 데이터를 다른 눈에 보이는 기업 자산과 동일한 수준의 주의와 존중을 받아야 할 대상으로 인식하도록 교육하는 것입니다.
비밀번호(password), 방화벽(firewalls), 데이터베이스 서버 및 저장 장치의 물리적 격리(physical isolation)와 같은 보호 조치는 기본적인 보안 관행입니다. 접근 권한을 변경하거나, 데이터베이스를 대규모로 수정하거나, 데이터베이스 내용을 다른 매체로 추출할 수 있는 소프트웨어 기능은 반드시 권한이 있는 사용자만 접근할 수 있어야 합니다.
정기적인 데이터베이스 백업(database backups)을 수행하고, 최소한 하나의 백업 사본은 외부 장소(offsite)에 보관함으로써 사고 발생 시 정보 및 운영 능력의 손실을 최소화할 수 있습니다.
