데이터 사전
1. 개요
데이터 사전은 메타데이터, 즉 정보에 대한 데이터를 저장하는 데이터 구조로, 데이터베이스의 구조, 내용 및 규칙을 설명하는 문서이다. 데이터 사전은 크게 수동 데이터 사전과 활성 데이터 사전으로 나뉘며, 활성 데이터 사전은 DBMS에 의해 자동 업데이트되는 반면 수동 데이터 사전은 사용자가 직접 관리해야 한다. 데이터 사전은 데이터베이스 사용자 및 애플리케이션 개발자에게 유용하며, 데이터베이스 테이블, 필드, 데이터 유형, 관계 등 다양한 정보를 제공한다. 또한, 미들웨어를 통해 데이터 사전 기능을 확장하여 분산 데이터베이스 쿼리 최적화 및 RAD(신속 애플리케이션 개발)를 지원하기도 한다.
-
한국어 위키백과의 링크가 위키데이터와 같은 위키공용분류 -
라우토카
라우토카는 피지 비치레부섬 서부에 위치한 피지에서 두 번째로 큰 도시이자 서부 지방의 행정 중심지로, 사탕수수 산업이 발달하여 "설탕 도시"로 알려져 있으며, 인도에서 온 계약 노동자들의 거주와 미 해군 기지 건설의 역사를 가지고 있고, 피지 산업 생산의 상당 부분을 담당하는 주요 기관들이 위치해 있다. -
한국어 위키백과의 링크가 위키데이터와 같은 위키공용분류 -
코코넛
코코넛은 코코넛 야자나무의 열매로 식용 및 유지로 사용되며, 조리되지 않은 과육은 100g당 354kcal의 열량을 내는 다양한 영양 성분으로 구성되어 있고, 코코넛 파우더의 식이섬유는 대부분 불용성 식이섬유인 셀룰로오스이며, 태국 일부 지역에서는 코코넛 수확에 훈련된 원숭이를 이용하는 동물 학대 문제가 있다. -
데이터 관리 -
데이터 센터
-
데이터 관리 -
정보 아키텍처
정보 아키텍처는 정보 시스템 및 정보 기술 분야에서 공유 정보 환경의 구조적 설계를 의미하며, 웹사이트, 소프트웨어 등의 구성과 레이블링을 포함하여 검색 용이성과 사용성을 지원하고, 도서관정보학에 기원을 두고 있다. -
한국어 위키백과의 링크가 위키데이터와 다른 위키공용분류 -
라우토카
라우토카는 피지 비치레부섬 서부에 위치한 피지에서 두 번째로 큰 도시이자 서부 지방의 행정 중심지로, 사탕수수 산업이 발달하여 "설탕 도시"로 알려져 있으며, 인도에서 온 계약 노동자들의 거주와 미 해군 기지 건설의 역사를 가지고 있고, 피지 산업 생산의 상당 부분을 담당하는 주요 기관들이 위치해 있다. -
한국어 위키백과의 링크가 위키데이터와 다른 위키공용분류 -
코코넛
코코넛은 코코넛 야자나무의 열매로 식용 및 유지로 사용되며, 조리되지 않은 과육은 100g당 354kcal의 열량을 내는 다양한 영양 성분으로 구성되어 있고, 코코넛 파우더의 식이섬유는 대부분 불용성 식이섬유인 셀룰로오스이며, 태국 일부 지역에서는 코코넛 수확에 훈련된 원숭이를 이용하는 동물 학대 문제가 있다.
2. 데이터 사전의 종류
데이터 사전은 크게 활성 데이터 사전과 수동 데이터 사전으로 나뉜다.
수동 데이터 사전은 설계자, 사용자, 관리자만 사용하고 DBMS 소프트웨어에서는 사용되지 않는 반면, 활성 데이터 사전은 DBMS 소프트웨어에서 사용된다.
데이터베이스 사용자 및 응용 프로그램 개발자는 데이터 사전 문서에서 도움을 받을 수 있다. 데이터 사전 문서에는 테이블(레코드 또는 개체)의 이름과 설명, 내용(필드), 유형, 데이터 요소의 길이 등 추가 정보가 포함된다. 또한, 테이블 간의 관계 정보도 제공될 수 있다.
데이터 사전은 각 지원 백엔드 DBMS에 맞게 조정된 시스템 생성 명령 파일에 의해 데이터베이스에 생성된 레코드 유형(테이블)으로 구성된다.
2.1. 활성 데이터 사전 (Active Data Dictionary)
활성 데이터 사전은 DBMS에 의해 자동 업데이트되는 데이터 사전이다. 데이터베이스 스키마가 변경되면, 변경 사항이 자동적으로 반영된다.
활성 데이터 사전은 주로 DBMS 내부 모듈(DDL 및 DML 컴파일러, 쿼리 최적화기 등)에서 사용된다. 데이터베이스 사용자 및 응용 프로그램 개발자도 데이터 사전 문서를 통해 데이터베이스 구성, 내용 및 규칙을 파악하여 도움을 받을 수 있다.
활성 데이터 사전에서는 데이터에 제약 조건을 설정할 수 있다. 예를 들어, 숫자 데이터 값의 범위를 지정하거나, 테이블의 레코드가 다른 레코드 유형과의 관계에 참여하도록 강제할 수 있다. 분산 DBMS에서는 활성 데이터 사전에 테이블의 물리적 위치와 같은 특정 위치 관련 정보가 포함될 수 있다.
2.2. 수동 데이터 사전 (Passive Data Dictionary)
데이터 사전 시스템이 설계자, 사용자 및 관리자에 의해서만 사용되고 DBMS 소프트웨어에서는 사용되지 않는 경우 이를 "수동 데이터 사전"이라고 한다. 수동 데이터 사전은 DBMS (데이터베이스) 구조에 대한 변경 사항과 별도로 수동으로 업데이트된다.
데이터베이스 사용자 및 응용 프로그램 개발자는 하나 이상의 데이터베이스 구성, 내용 및 규칙을 목록화한 데이터 사전 문서로부터 혜택을 받을 수 있다. 여기에는 일반적으로 다양한 테이블(레코드 또는 개체)의 이름과 설명, 해당 내용(필드)과 각 유형 및 데이터 요소의 길이와 같은 추가 세부 정보가 포함된다.
3. 데이터 사전의 구성 요소
데이터 사전은 메타데이터, 즉 구조화된 정보에 대한 데이터를 저장하는 데이터 구조이다. 독립형 데이터 사전 또는 데이터 저장소 소프트웨어 패키지는 DBMS 소프트웨어 모듈과 상호 작용할 수 있지만, 주로 정보 자원 관리를 위해 컴퓨터 시스템 설계자, 사용자 및 관리자가 사용한다. 이러한 시스템은 시스템 하드웨어 및 소프트웨어 구성, 설명서, 응용 프로그램 및 사용자, 시스템 관리에 관련된 기타 정보를 유지한다.
데이터 사전 시스템이 설계자, 사용자 및 관리자에 의해서만 사용되고 DBMS 소프트웨어에서는 사용되지 않는 경우, 이를 "수동 데이터 사전"이라고 한다. 그렇지 않은 경우 "활성 데이터 사전" 또는 "데이터 사전"이라고 한다. 수동 데이터 사전은 DBMS (데이터베이스) 구조에 대한 변경 사항과 별도로 수동으로 업데이트해야 한다. 활성 데이터 사전의 경우, 사전을 먼저 업데이트하면 DBMS에서 변경 사항이 자동으로 발생한다.
데이터베이스 사용자 및 응용 프로그램 개발자는 하나 이상의 데이터베이스 구성, 내용 및 규칙을 카탈로그하는 권위 있는 데이터 사전 문서로부터 혜택을 받을 수 있다. 데이터 사전은 각 지원 백엔드 DBMS에 맞게 조정된 시스템 생성 명령 파일에 의해 데이터베이스에 생성된 레코드 유형(테이블)으로 구성된다. 오라클에는 "sys" 사용자를 위한 특정 뷰 목록이 있어, 사용자가 필요한 정확한 정보를 조회할 수 있다. 명령 파일에는 해당 유형의 데이터베이스에서 필요한 특정 명령문을 사용하여 CREATE TABLE, CREATE UNIQUE INDEX, ALTER TABLE(참조 무결성을 위해) 등에 대한 SQL 문이 포함되어 있다.
이러한 문서의 세부 수준에 대한 보편적인 표준은 없다. 데이터베이스 사용자 및 애플리케이션 개발자에게는 데이터베이스의 구조, 내용 및 규약을 목록화한 데이터 사전 문서가 유용하다. 잘 설계된 데이터 사전 문서는 복잡한 데이터베이스나 대규모의 연합 데이터베이스에서 일관성을 유지하는 데 도움을 준다.
3.1. 데이터 요소 (필드) 정보
| 항목 | 설명 |
|---|---|
| 엔터티/테이블/폼 이름 또는 ID | 해당 필드가 속한 그룹 |
| 필드 이름 | 데이터베이스 필드 이름 (예: RDBMS 필드 이름) |
| 표시 이름 | 사용자에게 표시되는 필드 제목 (필드 이름을 기본값으로 사용 가능) |
| 데이터 타입 | 문자열, 정수, 날짜 등 필드의 데이터 형식 |
| 측정값 | 최소/최대값, 표시 너비, 소수 자릿수 등 |
| 표시 순서 | 필드 표시 순서 또는 탭 순서 |
| 화면 좌표 | 화면 상의 필드 위치 (위치 기반 또는 그리드 기반 UI인 경우) |
| 기본값 | 필드의 기본값 |
| 프롬프트 유형 | 드롭다운 목록, 콤보 상자, 체크박스 등 |
| 필수 여부 | 필드 값 입력 필수 여부 (Boolean) |
| 읽기 전용 여부 | 필드 값 변경 가능 여부 (Boolean) |
| 참조 테이블 이름 | 외래 키(Foreign Key)인 경우, 참조하는 테이블 이름 (유효성 검사 또는 선택 목록에 사용) |
| 이벤트 핸들러 | "클릭 시", "검증 시" 등 이벤트 발생 시 처리 로직 (사건 기반 프로그래밍 참고) |
| 형식 코드 | 정규 표현식 또는 COBOL 스타일 "PIC" 문 |
| 설명/개요 | 필드에 대한 추가 설명 |
3.2. 데이터베이스 객체 정보
데이터베이스 사용자 및 응용 프로그램 개발자는 하나 이상의 데이터베이스 구성, 내용 및 규칙을 카탈로그하는 권위 있는 데이터 사전 문서로부터 혜택을 받을 수 있다. 여기에는 일반적으로 다양한 테이블(레코드 또는 개체)의 이름과 설명, 해당 내용(필드)과 각 유형 및 데이터 요소의 길이와 같은 추가 세부 정보가 포함된다. 데이터 사전에서 제공할 수 있는 또 다른 중요한 정보는 테이블 간의 관계이다. 이는 때때로 개체 관계 다이어그램(ERD)에서 언급되거나 집합 설명자를 사용하는 경우 데이터베이스 테이블이 참여하는 집합을 식별한다.
활성 데이터 사전에서는 기본 데이터에 제약 조건을 설정할 수 있다. 예를 들어 데이터 요소(필드)의 숫자 데이터 값에 범위를 적용하거나 테이블의 레코드가 다른 레코드 유형과의 집합 관계에 참여하도록 강제할 수 있다. 또한 분산 DBMS는 활성 데이터 사전 내에 특정 위치 관련 정보를 가질 수 있다(예: 테이블이 물리적으로 위치한 곳).
4. 데이터 사전과 미들웨어
데이터베이스 애플리케이션을 구축할 때, 기반 DBMS 데이터 사전에 통신하는 미들웨어인 데이터 사전 소프트웨어 계층을 추가하는 경우가 있다. 이러한 상위 데이터 사전은 DBMS 고유의 하위 데이터 사전으로는 불가능한 기능과 유연성을 제공한다. DBMS 고유의 데이터 사전은 해당 DBMS의 기본 기능을 지원하며, 애플리케이션의 요구에 부응하는 것은 아니다. 상위 데이터 사전을 사용하면 동일한 데이터베이스를 공유하는 여러 애플리케이션에 대해 각각 최적화된 개체 관계 모델을 제공할 수 있다. 또한, 데이터 사전 확장을 통해 분산 데이터베이스에 대한 쿼리 최적화를 지원할 수 있다.
일부 산업에서는 시스템 간의 상호 운용성을 보장하기 위해 일반화된 데이터 사전을 기술 표준으로 사용한다. 예를 들어, 부동산 산업은 전미 부동산 중개인 협회가 정책 핸드북을 통해 준수하도록 의무화하는 [https://ddwiki.reso.org RESO의 데이터 사전]을 준수한다. MLS의 기본 데이터베이스에 대한 이 중간 매핑 계층은 MLS 조직에 API 서비스를 제공하는 소프트웨어 회사에서 지원한다.
4.1. 미들웨어의 역할
데이터베이스 애플리케이션 구축 시, 기반 DBMS 데이터 사전에 통신하는 추가적인 데이터 사전 소프트웨어 계층, 즉 미들웨어를 도입하는 것이 유용할 수 있다. 이러한 "고수준" 데이터 사전은 기본적인 DBMS 기능, 즉 일반적인 애플리케이션의 요구 사항이 아닌 지원을 주요 목적으로 하는 기본 "저수준" 데이터 사전의 제한을 넘어 추가 기능과 유연성을 제공할 수 있다. 예를 들어, 고수준 데이터 사전은 공통 데이터베이스를 공유하는 다양한 애플리케이션에 맞게 조정된 대체 개체-관계 모델을 제공할 수 있다. 데이터 사전의 확장은 분산 데이터베이스에 대한 쿼리 최적화를 지원할 수 있으며, DBA 기능과 연동하여 자동화된 재구성 도구를 제공하는 경우도 많다.
4.2. 소프트웨어 프레임워크와의 연동
신속 애플리케이션 개발(RAD)을 위한 소프트웨어 프레임워크는 종종 고급 데이터 사전 기능을 포함하여 메뉴, 양식, 보고서 및 데이터베이스 자체를 포함한 데이터베이스 애플리케이션의 구성 요소를 구축하는 데 필요한 프로그래밍 양을 크게 줄일 수 있다.
예를 들어, PHPLens는 여러 데이터베이스에 대해 테이블, 인덱스 및 외래 키 제약 조건을 이식 가능하게 자동 생성하는 PHP 클래스 라이브러리를 포함하고 있다. RADICORE 툴킷의 일부인 또 다른 PHP 기반 데이터 사전은 데이터 유효성 검사 및 복잡한 조인을 사용하여 메뉴 및 양식에 대한 프로그램 객체, 스크립트 및 SQL 코드를 자동 생성한다. ASP.NET 환경에서 Base One의 데이터 사전은 자동화된 데이터베이스 생성, 데이터 유효성 검사, 성능 향상(캐싱 및 인덱스 활용), 애플리케이션 보안 및 확장된 데이터 유형에 대한 교차 DBMS 기능을 제공한다.
5. 특정 플랫폼 사례
IBM i 환경에서 개발자는 데이터 설명 명세서(DDS)를 사용하여 파일 설명에서 데이터 속성을 기술한다. 오라클 데이터베이스의 'sys.ts$' 테이블은 데이터베이스가 생성될 때 함께 만들어지는 데이터 사전의 일부로, 데이터베이스의 모든 테이블에 대한 정보를 저장한다. 개발자는 개방형 환경에서 구조화된 쿼리 및 트랜잭션 쿼리를 위해 자유-오픈 소스 소프트웨어(FOSS)의 DDS 컨텍스트를 사용할 수도 있다.