[경영정보시각화능력] 데이터파일시스템
데이터파일시스템의 개념 및 종류
자료의 계층구조
자료의 계층구조 개요
· 파일 시스템은 자료의 계층구조를 가지고 있어 데이터를 효율적으로 저장하고 검색할 수 있다.
블록(Block)
· 파일 시스템의 가장 낮은 계층으로, 블록은 일정한 크기의 데이터 조각으로 파일시스템에 저장된다.
· 각 블록은 고유한 주소를 가지고 있으며, 파일시스템은 이러한 블록들을 조직화하여 파일이나 폴더에 할당한다.
파일(File)
· 사용자가 생성하는 데이터의 단위이다.
· 파일은 블록들의 집합으로 구성되며, 각 파일은 파일시스템에서 고유한 식별자(파일명 혹은 파일 경로)를 가진다.
· 파일은 데이터와 파일에 대한 메타데이터(파일 크기, 생성 일자, 수정 일자 등)를 포함한다.
· 파일시스템은 파일의 데이터를 여러 개의 블록에 분산하여 저장하고, 파일의 메타데이터는 특정 블록에 저장되거나 파일시스템의 다른 영역에 저장될 수 있다.
디렉토리(Directory)
· 파일이나 다른 디렉토리를 포함할 수 있는 컨테이너 역할을 수행하며, 파일을 조직화하기 위한 계층구조를 제공한다.
· 파일시스템에서 각 디렉토리는 고유한 식별자인 디렉토리 경로를 가지며, 사용자는 디렉토리를 통해 파일에 쉽게 접근할 수 있다.
· 파일시스템 내에서 파일의 계층구조를 형성하며, 파일과 다른 하위 디렉토리를 포함할 수 있다.
데이터파일시스템의 개념
데이터파일시스템
· 데이터파일시스템은 파일시스템과 데이터베이스관리시스템을 통칭한다.
파일시스템
· 파일과 폴더를 저장, 관리, 접근하는 체계로서, 자료의 계층구조를 통해서 데이터를 구조화하고 조직화한다.
· 데이터를 논리적으로 구성하고 저장 장치에 효율적으로 배치하여 파일의 생성, 수정, 삭제, 검색 등의 작업을 수행하도록 한다.
· 일반적으로 하드디스크, SSD, 네트워크 드라이브 등의 저장 장치에 적용된다.
· 파일, 폴더, 디렉토리를 통해 자료의 계층구조를 구현한다.
· 폴더에 대한 접근 권한도 관리하며, 읽기, 쓰기, 실행 등의 권한을 할당하여 데이터의 보안을 유지한다.
→ 이를 통해 불법적인 액세스를 방지하고 데이터를 안전하게 보호할 수 있다.
데이터베이스관리시스템(DBMS, Database Management, System)
· 파일시스템의 단전을 극복하기 위해 등장한 개념으로, 데이터베이스에 접근하여 데이터베이스의 정의, 조작, 제어 등의 관리를 지원하는 소프트웨어이다.
· 데이터베이스(Database) : 서로 관련 있는 데이터의 집합
→ 중복된 데이터를 제거하고, 데이터를 구조화함으로써 효율적인 처리가 가능하다.
데이터파일시스템의 종류 및 특성
(1) 파일시스템의 종류 및 특성
파일시스템의 종류
· 대표적인 파일시스템의 종류 : FAT32, NTFS, ext4, APFS, HFS+ 등
→ 각 운영체제와 저장 장치에 맞게 최적화되어 발전
FAT32
호환성: Windows, macOS, Linux 등 거의 모든 운영 체제에서 읽기 및 쓰기 지원
최대 파일 크기: 4GB
최대 파티션 크기: 8TB
장점
다양한 운영 체제 간 높은 호환성
USB 드라이브, SD 카드와 같은 소형 외장 스토리지 장치에 적합
단점
4GB 이상의 파일을 지원하지 않음
보안 기능이나 저널링 기능 부족
대용량 파일을 다루기 어려움
NTFS(New Technology File System)
최대 파일 크기: 16TB 이상
최대 파티션 크기: 256TB
저널링: 데이터 무결성을 보장하는 저널링 기능 포함
보안: 파일 및 폴더 수준의 권한 관리 및 암호화 지원
장점
대용량 파일 및 파티션 지원
파일 및 폴더에 대한 권한 설정 및 암호화 가능
데이터 손상 방지를 위한 저널링 기능
단점
macOS와 Linux에서는 기본적으로 읽기만 가능하고, 쓰기는 별도의 소프트웨어가 필요
외장 장치에서의 호환성은 FAT32만큼 좋지 않음
ext4(Fourth Extended File System)
Linux에서 널리 사용되는 파일 시스템
최대 파일 크기: 16TB
최대 파티션 크기: 1EB (엑사바이트)
저널링: 데이터 무결성 유지
장점
Linux와 매우 호환성이 높음.대용량 파일과 파티션 지원.빠른 성능 및 안정적인 파일 처리.
단점
Windows와 macOS에서 기본적으로 지원되지 않음(추가 소프트웨어 필요)
호환성 측면에서 제약이 있음
APFS(Apple File System)
macOS, iOS, iPadOS 등 Apple 장치에서 사용되는 최신 파일 시스템
최대 파일 크기: 이론적으로 8EB
최대 파티션 크기: 8EB
저널링: 고급 저널링 기능 포함
스냅샷: 파일 시스템의 스냅샷 기능으로 과거 상태 복원 가능
장점
SSD 및 플래시 메모리에서 최적화된 성능
빠른 복사 및 파일 처리 성능
스냅샷을 통한 데이터 복원 가능
암호화 및 효율적인 저장공간 관리
단점
Windows나 Linux에서 지원되지 않음(호환성 소프트웨어 필요)
HFS+보다 약간 더 높은 시스템 요구 사항
HTS+(Hierarchical File System Plus)
macOS에서 사용된 이전 세대 파일 시스템
최대 파일 크기: 8EB
최대 파티션 크기: 8EB
저널링: 저널링 기능 포함
장점
macOS에서 안정적으로 작동
저널링을 통한 데이터 무결성 보장
단점
APFS에 비해 SSD 성능이 떨어짐
Windows와 호환성이 낮음
APFS로 대체되는 추세
파일시스템의 특징
· 조직화된 데이터 저장 : 파일시스템은 데이터를 조직화하여 저장한다.
→ 파일의 크기에 맞게 데이터를 블록 단위로 나누어 저장하고, 각 파일에 대한 메타데이터를 관리한다.
→ 조직화된 저장 방식으로 인해 데이터의 효율적인 관리와 검색이 가능하다.
· 계층구조 : 파일시스템은 파일과 폴더의 계층구조를 제공한다.
→ 폴더는 파일을 그룹화하고 계층적으로 조직화하는 데 사용된다.
· 파일 및 폴더의 식별자 : 각 파일과 폴더를 고유한 식별자로 식별하여 파일에 접근할 수 있다.
· 접근 권한 관리 : 파일과 폴더에 대한 접근 권한을 관리한다.
· 백업과 복구 : 데이터의 백업과 복구를 지원한다.
파일시스템의 단점
· 데이터 중복 및 일관성 문제 : 여러 파일에 동일한 데이터를 중복해서 저장하는 경우 데이터의 일관성이 깨질 수 있다.
· 데이터 무결성 유지의 어려움 : 잘못된 데이터 입력, 데이터의 손상, 데이터 일관성 오류 등으로 인해 데이터의 정확성이 보장되지 않을 수 있다.
→ 파일시스템은 데이터에 대한 일관된 제약조건과 규칙을 적용하기 어렵다.
· 제한된 데이터 검색 및 쿼리(query) 기능 : 파일시스템은 기본적인 검색 기능만을 제공하고, 복잡한 데이터 검색 및 쿼리 작업을 수행하기에는 제한적이다.
· 확장성 문제 : 데이터의 양이 증가하거나 데이터베이스 요구사항이 변경될 경우 파일시스템은 데이터 처리에 제한적이다.
· 동시성 및 병행 처리의 문제 : 여러 사용자가 동시에 데이터에 액세스하거나 동시에 수정하는 것이 어렵다.
(2) 데이터베이스관리시스템의 종류 및 특징
데이터베이스관리시스템의 기능
· 데이터의 구조화: 데이터를 구조화하여 저장한다.
→ 파일 시스템에서는 각 응용프로그램이 자체적으로 데이터를 관리하기 때문에 중복성이 발생할 수 있지만, DBMS에서는 데이터베이스의 테이블이나 컬렉션과 같은 구조를 사용하여 중복된 데이터를 최소화하며, 이를 통해 데이터 일관성과 무결성을 유지한다.
· 데이터의 무결성 제약조건: 데이터베이스의 스키마를 정의하고 제약조건을 설정할 수 있다.
→ 제약조건은 데이터의 일관성과 무결성을 유지하기 위한 규칙을 정의하는 데 사용된다.
→ Ex. 특정 속성은 고유한 값을 가져야 한다거나, 참조 관계에서 부모 테이블의 레코드가 삭제되면 자식 테이블의 관련 레코드도 함께 삭제되어야 하는 등의 제약조건을 정의할 수 있다.
· 데이터의 동시 접근 제어: 여러 사용자가 동시에 데이터에 접근하고 수정하는 것을 효율적으로 관리한다.
→ 동시 접근 제어를 위해 트랜잭션 개념을 도입하여 여러 작업을 논리적으로 묶고, *트랜잭션 수준의 잠금 메커니즘을 사용하여 충돌을 방지한다.
*트랜잭션(Transaction): 데이터베이스에서 처리의 기본 단위로, 갱신으로 인해 일시적으로 정합하지 않은 데이터가 사용되지 않도록 적절한 구분 기호로 일련의 조작을 묶어서 처리한다.
· 데이터의 보안성: 데이터의 보안을 강화하기 위하여 사용자 인증과 권한 부여를 통해 접근 제어를 관리하고, 데이터 암호화를 지원하여 데이터의 기밀성을 보호한다.
→ 또한, 로그 파일을 활용하여 데이터 변경 이력을 기록하고, 복구 기능을 제공한다.
· 데이터의 공유와 일관성 유지: 데이터의 공유와 일관성 유지 기능을 제공하여 트랜잭션이 ACID 원칙을 준수하도록 지원한다.
→ 일관성: 트랜잭션이 실행되기 전과 후의 상태가 정의된 규칙과 제약조건을 준수하는 것이다.
→ ACID: 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 지속성(Durability)의 약자로, 트랜잭션의 원자성과 일관성을 보장하며, 동시성과 데이터의 지속성을 유지한다.
데이터베이스관리시스템의 특징: 데이터 종속성
· 데이터베이스에서 테이블 내 속성들 사이의 종속 관계를 나타내는 개념
→ 데이터베이스 구성 시 한 속성이 다른 속성에 의해 종속되었는지를 조사하는 과정이 필요하다.
→ Ex. 한 개의 ‘주민등록번호’는 하나의 ‘이름’만 가지므로 주민등록번호가 제시된다면 그 사람의 이름을 알 수 있다. 즉, ‘이름’이라는 속성은 ‘주민등록번호’라는 속성에 종속되는 속성이다. 그러나 ‘이름’이 주어진다고 해서 ‘주민등록번호’를 알 수 없으므로 ‘주민등록번호’는 ‘이름’이라는 속성에 종속되지 않는다.
· 데이터 종속성을 적절하게 관리하지 않으면 발생하는 문제
→ 데이터 중복과 일관성 문제: 같은 내용의 데이터가 다수의 테이블에 중복으로 저장될 수 있으며, 이는 데이터베이스의 용량을 낭비하고 데이터의 일관성을 해칠 수 있다.
→ 데이터 무결성 문제: 데이터 종속성을 적절하게 관리하지 않으면 *무결성 제약조건이 위배되고, 데이터의 정확성과 일관성을 보장할 수 없다.
*무결성: 데이터베이스 내의 데이터가 정확하고 일관된 상태를 유지하는 것이다.
→ 유지보수의 어려움: 복잡한 종속성 구조는 데이터베이스의 유지보수를 어렵게 만든다.
- 하나의 속성을 수정하거나 추가할 때, 관련된 모든 종속 속성을 수정해야 하며, 이는 실수 가능성을 높이고 유지보수 작업의 비용을 증가시킬 수 있다.
→ 성능 저하: 너무 많은 종속성이 있는 경우 데이터베이스의 성능에 영향을 줄 수 있다.
- Ex. 데이터 검색, 데이터 조작, 테이블 간 조인 작업 등이 더 복잡하고 느려질 수 있다.
데이터베이스관리시스템의 종류
· 계층형(Hierarchical) DBMS: 트리(tree) 형태의 계층적·종속적인 관계로 구성한 DBMS
· 네트워크(Network) DBMS: 데이터 구조를 네트워크상의 노드 형태로 표현하여 각 노드를 대등한 관계로 구성한 DBMS
· 관계형(Relational) DBMS: 데이터를 테이블 형태로 구성하고, 테이블 간의 관계를 기반으로 데이터를 구성한 DBMS
→ 계층형 DBMS와 네트워크 DBMS는 현재는 거의 사용되지 않는다.
관계형 데이터베이스관리시스템(RDBMS, Relational Database Management System)
· RDBMS: 관계형 데이터베이스를 생성, 조작, 관리하기 위한 소프트웨어 시스템
→ 데이터를 테이블 형태로 구성하고, 테이블 간의 관계를 기반으로 데이터를 구성하는 방식이다.
→ 주요한 관계형 DBMS: Oracle, MySQL, PostgreSQL, SQL Server 등.
→ DBMS의 주요 특징 및 기능
- 테이블 구조: 데이터를 테이블로 구성하며, 행과 열의 형태로 데이터를 저장한다. 각 테이블은 속성(열)으로 구성되며, 데이터는 이러한 속성들의 값으로 표현된다.
- 관계 정의: 테이블 간의 관계를 정의하고 유지하며, 이 관계는 기본키와 외래키를 통해 구축된다.
- 데이터 일관성: 데이터의 무결성과 일관성을 유지하기 위해 제약조건을 정의하고 적용해야 한다. 제약조건은 데이터의 유효성 검사와 일관성 유지를 보장한다.
- 질의 언어: 구조화된 질의 언어인 SQL(Structured Query Language)을 제공하여 데이터 검색, 조작, 조건부 검색 등을 수행한다.
- 데이터의 공유 및 동시성 제어: 다중 사용자 환경에서 데이터의 공유와 동시성 제어를 지원하여 여러 사용자가 동시에 데이터에 접근하고 조작할 수 있도록 한다.
- 데이터의 보안 : 사용자 권한과 접근 제어를 통해 데이터의 보안을 관리하여 데이터의 무단 접근을 방지하고 데이터의 기밀성을 유지한다.
데이터베이스 이해
데이터베이스 구성요소
테이블(Table)
· 데이터베이스에서 정보를 구조화하여 저장하는 단위
· 엔터티(Entity) 또는 릴레이션(Relation)이라고도 한다.
· 행과 열로 구성된 2차원의 구조로, 데이터의 집합을 나타낸다.
· 각 테이블은 고유한 이름을 가지며, 특정 유형의 데이터를 저장하는 역할을 한다.
→ Ex. "학생"이라는 테이블은 학생들의 정보를 저장하는 역할을 할 수 있다.
· 일반적으로 관련된 데이터를 그룹화하여 효율적인 데이터 관리를 가능하게 한다.
속성(Attribute)
· 테이블의 열을 나타내며, 특정 데이터 유형에 대한 정보를 기술한다.
· 필드(Field) 또는 변수(Variable)라고도 칭한다.
· 각 속성은 고유한 이름을 가지며, 해당 속성에 저장되는 데이터의 유형을 정의한다.
→ Ex. "이름", "나이", "성별"과 같은 속성은 "학생" 테이블에서 각 학생의 이름, 나이, 성별과 관련된 데이터를 저장한다.
· 테이블의 구조를 설명하고 데이터의 특징을 정의하는 데 사용된다.
레코드(Record)
· 테이블의 행을 나타내며, 튜플(Tuple)이라고도 한다.
· 각 레코드는 테이블의 속성에 해당하는 값들의 집합으로 구성된다.
→ Ex. "학생" 테이블의 한 레코드는 특정 학생의 이름, 나이, 성별 등에 대한 값을 포함한다.
· 데이터베이스에서 개별 데이터 항목을 표현하고 행 단위의 작업을 수행하는 데 사용된다.
메타데이터(Metadata)
· 데이터에 대한 데이터로, 데이터의 특성, 구조, 의미 등을 설명하는 정보를 의미한다.
· 데이터베이스 시스템에서 데이터를 관리하고 사용하는 데 필요한 정보를 제공한다.
· 데이터의 의미와 구조를 설명한다.
→ Ex. 테이블의 속성 이름, 데이터 유형, 제약조건, 관계 등의 정보를 포함하며, 이를 통해 데이터의 의미를 이해하고 해석할 수 있다.
· 데이터를 검색하고 조회하는 데 사용된다.
→ 테이블 이름, 속성 이름, 인덱스 정보 등을 포함하여 데이터베이스에서 원하는 데이터를 식별하고 검색하는 데 도움을 준다.
· 데이터베이스의 일관성과 제약조건을 유지하는 데 기여한다.
→ 테이블 간의 관계, 제약조건, 외래키 등을 정의하여 데이터의 일관성과 무결성을 보장한다.
· 데이터를 분석하고 가공하는 데 도움을 준다.
→ 데이터의 유형, 형식, 크기, 통계 정보 등을 포함하여 데이터 분석 및 가공 작업에 필요한 정보를 제공한다.
· 데이터베이스의 보안 관리에 사용된다.
→ 접근 권한, 사용자 권한, 보안 제약조건의 정보를 포함하여 데이터의 보안과 접근 제어를 관리한다.
데이터 딕셔너리(Data Dictionary)
· 데이터베이스 시스템에서 사용되는 데이터 구조와 메타데이터에 대한 정보를 저장하고 관리하는 역할을 한다.
· 데이터베이스 객체(테이블, 속성, 제약조건 등)의 정의, 구조, 속성, 통계 등의 데이터에 대한 설명과 정보를 포함한다.
· 데이터베이스관리시스템(DBMS)에서 중요한 역할을 하며, 데이터의 정확성과 일관성을 유지하는 데 도움을 준다.
트랜잭션 관리자(Transaction Manager)
· 데이터베이스에서 트랜잭션의 관리와 제어를 담당하는 역할을 한다.
· 트랜잭션은 데이터베이스에서 원자적인 작업 단위로 간주되며, 여러 데이터 조작 작업을 하나의 논리적인 단위로 묶어 일관성과 안전성을 보장한다.
· 트랜잭션의 시작, 종료, 병합, 롤백 등의 작업을 처리하여 데이터의 일관성과 동시성 제어를 관리한다.
저장 데이터 관리자(Storage Manager)
· 데이터베이스의 저장 구조와 데이터의 물리적인 저장, 접근, 관리를 담당하는 역할을 한다.
· 데이터베이스의 블록 할당, 파일 시스템, 인덱스 구조, 버퍼 관리 등을 관리하여 데이터의 효율적인 저장과 검색을 지원한다.
· 데이터의 저장 방법과 구조에 대한 결정, 디스크 공간 관리, 인덱스 생성 및 유지, 데이터베이스 파일 관리 등의 작업을 수행한다.
질의 처리기(Query Processor)
· 사용자의 질의(SQL)를 처리하고 데이터베이스로부터 원하는 정보를 추출하는 역할을 한다.
· 사용자가 요청한 질의를 해석하고, 최적의 실행 계획을 생성하여 데이터베이스로부터 데이터를 검색하거나 조작한다.
데이터베이스 구조
스키마(Schema)
· 데이터 구조와 제약조건을 명세하는 것으로, 개체, 속성, 관계의 정의와 그들이 유지해야 할 제약조건을 포함한다.
· 데이터베이스 관리의 관점에서 스키마는 외부 단계, 개념 단계, 내부 단계로 구분된다.
→ 각 단계의 스키마는 외부 스키마, 개념 스키마, 내부 스키마로 알려져 있으며, 이를 3단계 데이터베이스 구조라고 한다.
· 데이터베이스 시스템에서 데이터의 정확성과 일관성을 유지하기 위해 중요한 역할을 한다.
→ 외부 스키마, 개념 스키마, 내부 스키마는 서로 다른 관점에서 데이터의 구조를 정의하며, 데이터베이스 시스템의 사용자 및 관리자가 데이터에 접근하고 조작할 수 있도록 한다.
· 외부 스키마: 사용자나 응용 프로그램의 관점에서 데이터베이스 정의
→ 특정 사용자 그룹이나 응용 프로그램에 필요한 데이터의 논리적 구조와 접근 방법을 정의한다.
→ 각각의 외부 스키마는 해당 사용자나 응용 프로그램이 필요로 하는 데이터의 부분집합에 대한 뷰(View)로서 동작한다.
→ 데이터베이스 시스템에서 개별적으로 정의되며, 다수의 외부 스키마가 존재할 수 있다.
· 개념 스키마: 전체 데이터베이스의 논리적 구조를 정의
→ 모든 외부 스키마의 통합된 뷰로서, 데이터베이스의 전체적인 구조와 데이터 간의 관계를 나타낸다.
→ 데이터베이스 시스템의 관리 및 조작을 위한 기반을 제공하며, 데이터의 일관성과 무결성을 유지하는 역할을 한다.
· 내부 스키마: 데이터의 물리적 구조를 정의
→ 데이터가 디스크에 저장되는 방식, 인덱스 구조, 저장 위치 등과 같은 물리적 세부 사항을 정의한다.
→ 데이터베이스 시스템의 성능 향상을 위해 최적화된 구조로 데이터를 관리한다.
데이터베이스 언어
· 데이터베이스는 데이터를 관리하는 시스템이며, 데이터는 물리적인 파일 형태로 저장된다. 그러나 직접 파일을 열어서 데이터를 확인하지 않고, 질의 언어를 사용하여 저장된 데이터를 조회, 입력, 수정, 삭제 등의 조작을 수행하며, 테이블을 비롯한 다양한 객체를 생성하고 제어한다.
· 데이터 언어: 데이터베이스를 정의하고 접근하기 위한 시스템과의 통신에 사용되는 언어
→ 데이터 정의어, 데이터 조작어, 데이터 제어어로 구분된다.
→ 이 세 가지 언어는 데이터베이스의 다른 측면을 다루며, 데이터베이스를 구축, 조작 및 제어하는 데 사용된다. 이를 통해 데이터베이스를 효율적으로 관리하고, 데이터의 일관성과 안전성을 보장할 수 있다.
· 데이터 정의어(DDL, Data Definition Language) : 데이터베이스의 구조와 스키마를 정의하는 데 사용된다.
→ 데이터베이스 객체(테이블, 뷰, 인덱스 등)의 생성, 수정, 삭제를 담당한다.
→ 중요 명령어: CREATE, ALTER, DROP
- CREATE: 테이블 생성
- ALTER: 테이블 수정
- DROP: 테이블 삭제
→ 데이터베이스의 논리적 구조를 설계하고, 데이터베이스 객체의 속성, 유형, 제약조건을 정의한다.
· 데이터 조작어(DML, Data Manipulation Language) : 데이터베이스에서 데이터를 조작하는 데 사용된다.
→ 데이터의 검색, 삽입, 수정, 삭제 등의 작업을 수행한다.
→ 중요 명령어: SELECT, INSERT, UPDATE, DELETE
- SELECT: 데이터 조회
- INSERT: 데이터 삽입
- UPDATE: 데이터 수정
- DELETE: 데이터 삭제
→ 데이터베이스에서 테이블의 특정 조건에 따라 데이터를 선택하거나 변경하는 기능을 제공한다.
· 데이터 제어어(DCL, Data Control Language) : 데이터베이스의 보안, 권한 관리, 무결성 제약조건 등을 제어하는 데 사용된다.
→ 데이터베이스에 접근하는 사용자나 응용 프로그램에 대한 권한을 부여하거나 제거한다.
→ 중요 명령어: GRANT, REVOKE
- GRANT: 접근 권한 부여
- REVOKE: 접근 권한 회수
→ 데이터베이스의 보안과 무결성을 유지하기 위한 제약조건을 설정하거나 해제하는 기능을 제공한다.
키(Key), 변수의 개념
키(Key)
· 데이터베이스에서 레코드를 고유하게 식별하는 역할을 하는 속성(열) 또는 속성들의 조합
· 데이터베이스에서 데이터의 고유성과 무결성을 보장하며, 데이터의 식별 및 검색에 사용된다.
· 대표적인 키의 종류: 슈퍼키, 후보키, 기본키, 대체키, 외래키
슈퍼키(Super Key): 테이블 내에서 레코드를 고유하게 식별할 수 있는 속성 또는 속성들의 조합
→ 테이블 내의 모든 레코드를 고유하게 식별할 수 있지만, 최소성 조건을 만족시키지 않을 수 있다.
→ 테이블의 레코드를 식별할 수 있는 잠재적인 키 집합
- Ex. 책 정보 테이블에서 "ISBN", "ISBN, 책이름", "ISBN, 책이름, 저자"와 같은 속성 조합은 모두 슈퍼키가 될 수 있다.
후보키(Candidate Key): 테이블에서 각 레코드를 고유하게 식별할 수 있는 속성 또는 속성들의 조합
→ 슈퍼키의 특징을 가지면서 최소성 조건을 만족한다.
→ 테이블의 레코드를 고유하게 식별할 수 있는 최소한의 속성 집합이다.
→ 후보키는 기본키로 사용될 수 있으며, 후보키 중 하나를 기본키로 선택한다.
- Ex. "ISBN", "책이름, 저자"는 책 정보 테이블에서 후보키가 될 수 있다.
기본키(Primary Key): 테이블에서 각 레코드를 고유하게 식별하기 위해 선택된 키
→ 후보키 중에서 선택되며, 테이블 내에서 중복된 값이 없어야 하고 `NULL` 값을 가질 수 없다.
→ 테이블의 주 식별자로 사용되며, 레코드 간의 관계 구축에 사용된다.
- Ex. 책 정보 테이블에서 "ISBN" 또는 "책이름, 저자" 중 하나를 기본키로 설정할 수 있다.
대체키(Alternate Key): 기본키가 될 수 있는 후보키 중에서 기본키로 사용되지 않는 키
→ 테이블의 레코드를 고유하게 식별할 수 있지만, 기본키로 선택되지 않은 경우를 말한다.
- Ex. "책이름, 저자"가 기본키로 설정된 경우 "ISBN"은 대체키가 된다.
외래키(Foreign Key): 한 테이블에서 다른 테이블의 기본키를 참조하는 키
→ 외래키를 사용하여 테이블 간의 관계를 맺을 수 있으며, 참조 무결성을 유지한다.
→ 참조하는 테이블의 기본키와 연결되며, 참조된 레코드 간의 일관성을 보장하는 역할을 한다.
변수(Variable) : 값을 저장하고 참조할 수 있는 메모리 공간
· 데이터 처리 및 분석에 사용되며, 값을 저장하고 조작함으로써 원하는 결과를 얻을 수 있다.
· 프로그래밍에서 변수는 데이터를 저장하고 처리하는 데 사용되며, 통계에서는 데이터를 기록하고 분석하는 데 사용된다.
· 변수의 이름을 부여하여 해당 이름을 통해 변수에 접근할 수 있다.
· 변수는 특정한 데이터 유형을 가지며, 해당 유형에 따라 저장 가능한 값의 종류와 연산이 제한될 수 있다.
→ 독립변수(Independent Variable): 다른 변수에 영향을 미치지만, 스스로는 다른 변수에 의존하지 않는 변수
→ 종속변수(Dependent Variable): 독립변수의 영향을 받아 값이 변화하는 변수
→ Ex. 어떤 제품의 판매량을 예측한다면, 판매량은 종속변수가 되며 이에 영향을 미치는 광고 비용, 가격을 독립변수로 사용할 수 있다.
· 특성에 따른 변수 분류
→ 이산변수(Discrete Variable): 정수 또는 유한한 값 중 하나를 가지는 변수
- 값이 정수 형태로 분류되며, 연속적인 값을 가지지 않는다.
- 개수나 빈도와 같은 계수적인 측면에서 분석될 수 있다.
- Ex. 주사위 눈의 개수, 가족 구성원 수 등.
→ 연속변수(Continuous Variable): 실수 형태로 연속적인 값을 가지는 변수
- 값은 연속적인 범위에서 측정되며, 무한한 값을 가질 수 있다.
- 측정이나 관찰에 따라 다양한 값을 가지며, 측정된 값의 정밀도와 소수점 자릿수에 따라 다를 수 있다.
- Ex. 사람의 키, 몸무게, 온도 등.
→ 명목형 변수(Nominal Variable): 범주를 표현하는 변수
- 명목적인 라벨이나 카테고리를 가진다.
- 값들이 상호 배타적인 범주로 분류되며, 순서나 계층구조가 없다.
- 범주 간의 차이를 표현하거나 관계를 파악하는 데 사용된다.
- Ex. 동물의 종류(개, 고양이, 새), 혈액형(A, B, AB, O) 등.
→ 순서형 변수(Ordinal Variable): 범주를 순서대로 나타내는 변수
- 상대적인 크기나 순서를 가진다.
- 값들은 상대적인 순서를 가지며, 범주 간에 순서 또는 계층구조가 있다.
- 순서나 계급 간의 차이를 표현하거나 상대적인 순위를 파악하는 데 사용된다.
- Ex. 학업 성적의 등급(A, B, C, D, F) 등.
· 파생변수(Derived Variable): 기존 변수를 이용하여 계산, 변형 또는 조합하여 생성된 변수
→ 주어진 데이터나 변수로부터 파생되며, 원래 변수들로부터 얻은 정보나 의미를 나타내는 새로운 변수이다.
→ Ex. 주어진 키와 몸무게로부터 체질량 지수(BMI)를 계산한 경우, BMI는 원래 변수로부터 파생된 변수이다.
· 요약변수(Summary Variable): 데이터의 특성을 요약하여 표현한 변수
→ 여러 개의 관측치를 대표하는 값으로 축약된 형태를 가지며, 데이터의 집계나 통계 계산에 사용된다.
→ Ex. 학생들의 시험 점수로부터 평균, 중앙값, 최댓값, 최솟값 등의 통계량을 계산하여 요약변수를 생성할 수 있다.
· 시계열 변수(Time Series Variable): 시간에 따라 변화하는 값을 갖는 변수
→ 일정한 간격으로 측정되거나 관찰되는 시간 데이터를 기반으로 한다.
→ 시간 경과에 따른 패턴, 추세, 계절성 등을 파악하거나 예측하는 데 사용된다.
→ Ex. 매일의 주가, 매월의 판매량, 연간 기후 데이터 등
분산 데이터베이스
분산 데이터베이스
· 물리적으로 분산된 데이터베이스 시스템을 네트워크로 연결하여, 사용자가 논리적으로는 하나의 중앙 집중식 데이터베이스 시스템처럼 사용할 수 있도록 한 것
분산 데이터베이스 시스템의 주요 구성 요소
· 분산 처리기(Distributed Processor): 지역별로 필요한 데이터를 처리할 수 있는 지역 컴퓨터로, 각 지역의 데이터베이스를 자체적으로 관리하는 DBMS를 별도로 가지고 있다.
· 분산 데이터베이스(Distributed Database): 물리적으로 분산된 지역 데이터베이스로, 해당 지역에서 가장 많이 사용하는 데이터를 저장한다.
· 통신 네트워크: 분산 처리기는 통신 네트워크를 통해 자원을 공유하며, 특정 통신 규약에 따라 데이터를 전송한다.
분산 데이터베이스 시스템의 장단점
· 장점
→ 신뢰성과 가용성 증대: 장애 발생 시 다른 지역의 데이터베이스를 이용해 작업을 계속 수행할 수 있다.
→ 지역 자치성과 효율성 증대: 데이터베이스를 지역별로 독립적으로 관리하므로, 데이터 요청에 대한 응답 시간을 줄이고 통신 비용도 절약된다.
→ 확장성 증대: 처리할 데이터 양이 증가하면 새로운 지역에 데이터베이스를 설치하여 운영할 수 있다.
· 단점
→ 중앙 집중식 시스템에 비해 설계 및 구축 비용이 많이 발생하고, 추가 통신 비용이나 처리 비용이 발생한다.
→ 여러 지역에 대한 관리가 복잡하다.
→ 오류의 잠재성이 증가한다.
→ 데이터 무결성에 대한 위협이 증대된다.
→ 불규칙한 응답 속도를 가질 수 있다.
분산 데이터베이스 시스템의 투명성 유형
· 분할 투명성: 하나의 논리적 관계가 여러 단편으로 분할되어, 각 단편의 사본이 여러 사이트에 저장된다.
· 위치 투명성: 사용하는 데이터의 저장 장소를 명시할 필요가 없다.
→ 위치 정보는 시스템 카탈로그(System Catalog)에 유지된다.
· 지역 사상 투명성: 지역 DBMS와 물리적 데이터베이스 사이의 연계를 보장한다.
· 중복 투명성: 데이터베이스 객체가 여러 사이트에 중복되어 있는지 알 필요가 없다.
· 장애 투명성: 구성요소의 장애에 무관한 트랜잭션(Transaction)의 원자성 유지
· 병행 투명성: 다수의 트랜잭션을 동시에 수행해도 트랜잭션의 결과는 영향을 받지 않음
데이터 활용
데이터 가공
데이터 오류: 데이터 집합 내에 부정확하거나 잘못된 정보가 포함된 상태
· 입력 실수, 기술적 결함, 하드웨어 오작동, 데이터 수집, 저장, 전송 과정에서 다양한 원인으로 발생한다.
· 데이터 관리 및 분석에 심각한 오류를 초래하므로, 데이터의 정확성과 신뢰성을 보장하기 위해 유효성 검사와 검증 프로세스가 필수적이다.
· 데이터 오류의 유형
→ 오타 오류: 데이터를 수동으로 입력할 때 실수로 발생하는 오류
→ 중복 항목: 동일한 데이터를 데이터 집합에 두 번 이상 입력할 때 발생
→ 누락 데이터: 불완전한 데이터 수집 또는 입력 중 특정 데이터 포인트가 누락되는 경우 발생
→ 잘못된 서식: 데이터가 필요한 표준에 따라 올바르게 포맷되지 않았을 때 발생
→ 이상값: 데이터 범위를 크게 벗어나는 데이터 포인트로, 측정 오류, 데이터 손상 또는 기타 이상 징후로 인해 발생
→ 잘못 정렬된 데이터: 데이터베이스나 스프레드시트에서 데이터가 잘못 정렬되어 값이 잘못된 범주나 레이블에 연결되는 경우
→ 계산 오류: 데이터에 대한 수학적 또는 통계적 계산이 잘못 수행될 때 발생
데이터 정제: 데이터의 품질과 정확성을 높이는 작업
· 결측값 처리
→ 결측값 식별: 데이터 세트에 결측값이 있는지 확인하고, 결측값이 발생하는 패턴과 원인을 파악
→ 결측값 처리: 결측값이 있는 행 또는 열을 삭제하거나, 적절한 추정치(평균, 중앙값, 회귀 대입 등)로 결측값을 채우는 방법을 사용. 다중 대입 기법도 활용 가능.
- 대입 시 주의사항: 결측값 대입의 잠재적 영향과 편향을 고려해야 한다.
· 중복값 제거
→ 중복값 식별: 특정 변수 또는 변수의 조합을 기준으로 각 행을 비교하여 데이터 세트에 중복된 항목이 있는지 확인
→ 중복값 제거: 첫 번째 항목 유지, 마지막 항목 유지, 모든 중복 항목 제거 등의 방법을 사용하여 중복값을 제거
· 불일치 데이터 처리
→ 불일치 데이터 식별: 일관되지 않은 데이터의 형식, 값, 표현 등을 식별
→ 형식 표준화: 데이터 형식을 일관된 표현으로 변환하여 표준화
→ 오류 수정: 데이터 세트에서 발견된 데이터 입력 오류나 불일치를 확인하고 수정
· 이상값 처리
→ 이상값 식별: 데이터 범위를 크게 벗어난 극단적인 값을 감지
→ 상황적 이해: 도메인 지식과 데이터 분석 작업을 고려하여 이상값 판단
→ 처리 방법: 통계적 방법을 사용하여 이상 값을 제거 또는 변환
· 데이터 유효성 검사
→ 사전에 정의된 규칙 또는 제약조건에 따라 데이터의 유효성 검사
→ 외부 데이터 또는 알려진 참조와 상호 교차하여 데이터의 신뢰성과 정확성 검증
데이터 변환: 데이터를 분석 또는 모델링에 적합한 형식으로 변환하는 작업
· 정규화/표준화
→ 정규화: 서로 다른 배율의 영향을 없애고 모든 변수를 비슷한 수준으로 맞추기 위해 숫자 데이터를 0과 1 사이의 범위로 재조정하는 작업
→ 표준화: 변수의 단위나 분포가 다른 경우, 변수의 척도를 맞추기 위해 숫자 데이터를 평균 0, 표준편차 1이 되도록 변환하는 작업
· 로그 변환
→ 데이터 분포가 왜곡된 경우, 데이터의 분포를 대칭적으로 만들어 극단적인 값의 영향을 줄이기 위해 데이터에 로그 함수를 적용하는 작업
· 구간화(Binning)
→ 연속형 변수를 범주형 또는 순서형 변수로 변환하거나, 숫자값의 작은 변화로 인한 영향을 줄이기 위해 연속형 데이터를 불연속 구간 또는 간격으로 범주화하는 작업
· 범주형 변수 인코딩
→ 원핫(One-Hot) 인코딩: 범주형 변수를 0과 1의 이진 벡터로 변환
→ 레이블 인코딩: 범주형 변수의 각 범주에 숫자값을 할당하는 방식
· 날짜 및 시간 처리
→ 분할: 날짜/시간 데이터를 연, 월, 일, 시, 분 등으로 분할
→ 파생: 날짜/시간 데이터로부터 시간대(오전, 오후, 저녁), 요일 또는 계절 등의 파생 변수를 생성
· 데이터 집계 및 형태 변환
→ 데이터 집계: 특정 변수의 합계, 평균, 최댓값, 최솟값 등을 계산하여 특정 기준에 따라 여러 행 또는 레코드를 단일 요약 행으로 집계
→ 데이터 형태 변환: 데이터 세트를 와이드(wide) 또는 롱(long) 포맷으로 변환하는 작업
· 차원 축소
→ 주성분 분석(PCA, Principal Component Analysis): 데이터의 분포를 최대한 보전하면서 고차원 데이터를 저차원 데이터로 변환하는 대표적인 차원 축소 기법
→ 특징 선택(Feature Selection): 모델 구성을 위한 중요한 특징(변수)을 선택하는 작업
데이터 분리: 데이터 처리, 분석, 모델링 또는 유효성 검사를 목적으로 특정 기준에 따라 데이터를 분할하는 작업
· 데이터 세트 분할
→ 훈련 세트(Training Set): 모델의 학습을 위한 데이터 세트
→ 검증 세트(Validation Set): 모델을 조정하고 평가하기 위한 데이터 세트
→ 테스트 세트(Test Set): 모델의 성능을 평가하기 위한 데이터 세트
· 교차 검증
→ 모델 성능의 추정과 일반화 성능을 평가하기 위하여 데이터 세트를 여러 하위 집합(fold, 폴드)으로 분리한 후 일부 폴드는 테스트 세트로 사용하고 나머지 폴드는 훈련 세트로 사용
· 표본 추출
→ 계층적 표본 추출: 분포가 불균형하거나 계층화된 데이터 세트에서 클래스 또는 그룹의 상대적 비율을 유지하며 데이터 추출
→ 무작위 표본 추출: 데이터 세트에서 무작위로 데이터를 추출하는 방식
· 시간 기반 분할
→ 시계열 또는 순차적 데이터를 처리하기 위해 특정 시점 또는 기간을 기준으로 데이터 세트를 분할하는 방법
데이터 결합: 다수의 데이터 세트를 하나의 통합된 데이터 세트로 병합하거나 통합하는 작업
· 유니온(Union): 동일한 변수 또는 열을 가진 데이터 세트를 수직으로 결합하는 방식
· 조인(Join): 공통 키 또는 식별자를 기반으로 데이터 세트들을 조합하는 방법
→ 내부 조인(Inner Join): 두 테이블에 공통으로 존재하는 칼럼을 이용하여, 식별자가 일치하는 행만을 결합
→ 외부 조인(Outer Join): 조인 기준 테이블의 모든 열에 대해, 조인 참여 테이블과 일치하는 행을 반환하고, 일치하지 않는 경우 'NULL' 값을 반환
· 추가: 기존 데이터 세트에 새로운 관측값(행) 또는 변수(열)를 추가
· 데이터 혼합: 서로 다른 구조 또는 변수를 가진 다른 소스의 데이터 세트 사이에 일치하는 정보를 식별하고 정렬하여 데이터 세트를 통합하는 방법
데이터 관리
데이터 수집 및 변환: 다양한 소스에서 데이터를 수집하고, 이를 분석 또는 저장에 적합한 구조화된 형식으로 변환하는 프로세스
· 데이터 요구사항 정의
→ 수집해야 하는 구체적인 데이터와 수집 목적을 결정한다.
→ 목표를 달성하는 데 필요한 데이터 속성, 형식, 구조를 명확히 정의한다.
· 데이터 소스 식별
→ 데이터 소스는 데이터베이스, 스프레드시트, API, 웹 스크래핑, 로그 파일, IoT 장치, 소셜 미디어 플랫폼 등 다양한 소스를 포함한다.
→ 웹 스크래핑: 웹페이지의 데이터를 자동으로 추출하는 기술.
· 데이터 수집
→ 데이터 추출: SQL 쿼리, API 요청, 파일 다운로드 또는 웹 스크래핑 기술을 사용하여 소스에서 데이터를 추출한다.
→ 데이터 통합: 여러 소스의 데이터를 단일 데이터 세트로 통합하며, 호환성, 일관성 및 데이터 품질을 관리한다.
· 데이터 변환
→ 데이터 정리: 데이터 세트 내의 불일치, 오류 또는 중복을 제거 및 수정한다.
→ 데이터 서식: 데이터를 분석 또는 저장에 적합한 일관된 형식으로 변환한다.
→ 데이터 집계: 특정 속성별로 데이터를 집계하여 요약 데이터를 생성한다.
→ 데이터 보강: 외부 소스에서 관련 데이터를 추가하여 데이터 세트를 보강한다.
· 데이터 검증 및 품질보증
→ 데이터 무결성 검증: 데이터의 정확성, 일관성 및 완전성을 검사한다.
→ 품질 보증: 데이터 품질 검사와 유효성 검사 규칙을 구현하여 이상 징후, 이상값 및 데이터 품질 문제를 식별하고 해결한다.
· 데이터 스토리지
→ 변환된 데이터의 볼륨, 구조, 접근 요구사항에 따라 적절한 데이터 스토리지 솔루션을 결정한다.
→ 대표적인 데이터 스토리지 솔루션: 관계형 데이터베이스, NoSQL 데이터베이스, 데이터 웨어하우스, 클라우드 기반 스토리지 등.
데이터 적재 및 저장
· 데이터의 효과적인 적재와 저장은 데이터의 무결성, 접근성 및 효율성 유지
· 데이터 적재
→ ETL(Extract, Transform, Load): 다양한 소스에서 데이터를 추출하고, 통합된 형식으로 변환한 후 대상 시스템에 로드하는 과정.
→ 일괄 처리: 데이터를 관리 가능한 단위로 나누어 일괄적으로 적재.
→ 실시간 처리: 스트리밍 데이터를 실시간으로 처리하고 적재.
· 데이터 저장
→ 관계형 데이터베이스: 구조화된 데이터를 저장하는 솔루션.
- 대표 솔루션: MySQL, PostgreSQL, Oracle.
→ NoSQL 데이터베이스: 비정형 또는 반정형 데이터를 저장하는 솔루션.
- 대표 솔루션: MongoDB, Cassandra, Redis.
→ 데이터 웨어하우스: 다양한 소스에서 수집된 대량의 데이터를 저장, 관리 및 분석하는 중앙 저장소로 비즈니스 인텔리전스에 사용.
- 대표 솔루션: Amazon Redshift, Google BigQuery, Snowflake.
→ 분산 파일 시스템: 대량의 비정형 데이터를 저장하는 솔루션.
- 대표 솔루션: HDFS(Hadoop Distributed File System), Amazon S3.
· 데이터 백업 및 복구
→ 정기적인 백업: 데이터 손실이나 시스템 장애 발생 시 데이터 가용성과 복구를 보장하기 위해 정기적이고 자동화된 백업을 수행한다.
→ 복원 테스트: 데이터 복구 프로세스를 주기적으로 테스트하여 백업의 무결성을 검증하고, 데이터를 성공적으로 복구할 수 있는지 확인한다.
· 데이터 보안
→ 접근 제어: 데이터에 대한 접근 권한을 제어하고 인증 메커니즘을 구현한다.
→ 암호화: 암호화 기술을 사용하여 미사용 데이터와 전송 중인 데이터를 보호한다.
→ 개인정보보호 규정 준수: 개인정보 및 민감한 데이터 보호 규정을 준수한다.
· 모니터링 및 유지관리
→ 데이터 저장 및 적재 프로세스를 추적하며, 이상 징후를 감지하고 스토리지 인프라의 성능과 상태를 모니터링하여 안정적이고 효율적인 환경을 유지한다.
데이터 보안 및 개인정보보호
· 데이터 보안: 무단 접근, 공개, 변경, 파기로부터 데이터를 보호하기 위한 기술적, 관리적, 물리적 제어를 포함.
· 데이터 분류: 민감도와 중요도에 따라 데이터를 공개, 내부, 기밀, 제한 등으로 분류하고 적절한 수준의 보안 제어를 결정.
· 접근 제어
→ 사용자 인증: 비밀번호, 다단계 인증(MFA), 생체 인증 등과 같은 인증 메커니즘을 구현하여 데이터 사용자를 확인.
→ 사용자 권한 부여: 사용자 역할과 권한에 따라 세분된 접근 제어 설정.
· 데이터 백업 및 복구
→ 정기적인 백업: 자동화된 백업 작업을 정기적으로 수행.
→ 오프사이트 스토리지(Off-site Storage): 물리적 재해나 시스템 장애 발생 시 데이터를 외부 안전 장소에 백업 저장.
→ 재해 복구 계획: 장애 발생 시 데이터 복원, 시스템 복구, 비즈니스 연속성을 보장하는 절차를 포함한 포괄적인 재해 복구 계획 수립.
· 네트워크 보안
→ 방화벽: 수신 및 발신 네트워크 트래픽을 모니터링하고 제어하는 솔루션.
→ 침입 탐지 및 방지 시스템(IDS/IPS): 침입 시도, 멀웨어, 무단 접근 등의 네트워크 공격을 탐지하고 방지.
→ Wi-Fi 네트워크 보안: 비밀번호 변경 및 펌웨어 업데이트를 정기적으로 수행.
· 개인정보보호 규정 준수
→ 규정 준수: 관련 데이터 개인정보보호 규정을 이해하고 준수.
→ 개인정보 비식별화: 가명화 또는 익명화를 통해 개인정보를 비식별화.
· 정기적인 보안 업데이트 및 패치 관리
→ 소프트웨어 공급업체가 제공하는 업데이트와 보안 패치를 정기적으로 설치.
· 물리적 보안 조치
→ 데이터센터 보안: 접근 제한, 비디오 감시, 환경 제어 등 데이터센터와 서버실을 보호하기 위한 물리적 보안 조치.
→ 보안 스토리지: 무단 접근 및 도난 방지를 위해 저장 매체를 안전하게 보관.
비즈니스 인텔리전스
비즈니스 인텔리전스(BI, Business Intelligence)의 개념
· 조직에서 데이터를 분석하여 실행 가능한 통찰과 의미 있는 정보를 생성하기 위해 사용하는 기술, 전략, 프로세스를 의미한다.
· 비즈니스 운영, 추세 및 패턴에 대한 포괄적인 뷰를 제공하여, 사업 기회를 파악하고 문제를 해결하며 전략적 의사결정을 지원하는 것을 목적으로 한다.
비즈니스 인텔리전스 관련 개념
· 데이터 통합: 데이터베이스, 스프레드시트, 엔터프라이즈 시스템, 외부 API 등과 같은 여러 소스의 데이터의 통합을 기반으로 한다.
→ 통합된 데이터는 데이터 정제 및 변환 과정을 거친 후 분석에 사용
· 데이터 웨어하우징(Data Warehousing): 다양한 소스의 데이터를 중앙 집중식 리포지토리인 데이터 웨어하우스에 통합하여 분석에 최적화된 데이터를 제공
· 데이터 모델링: 데이터의 논리적 표현을 생성하는 것으로 테이블 사이의 관계, 계층구조, 차원, 측정값을 정의
· 데이터 분석: 설명적 분석, 진단적 분석, 예측적 분석, 처방적 분석을 활용하여 데이터에서 비즈니스에 유용한 통찰을 발견
· 데이터 시각화: 대시보드, 차트, 그래프 등을 이용하여 데이터를 시각적으로 표현
· 데이터 마이닝: 통계분석, 머신러닝, 인공지능 등을 활용하여 대규모 데이터 세트 내에서 숨겨진 패턴, 관계 및 추세를 발견하는 기술과 방법
· 셀프서비스 비즈니스 인텔리전스(Self-service Business Intelligence): 비즈니스 사용자가 IT팀 또는 기술팀에 의존하지 않고 독립적으로 데이터에 접근하여 데이터를 탐색하고 분석하는 것
· 데이터 거버넌스: 다양한 정책과 표준을 통해 데이터의 보안, 개인정보보호, 정확성, 가용성, 사용성을 보장하기 위해 수행하는 모든 작업
→ 데이터 거버넌스의 목표는 안전한 방식으로 손쉽게 접근 가능한 고품질 데이터를 유지하고 관리하는 것이다.
· 지속적인 개선: BI는 지속적인 모니터링, 분석 및 개선이 수반되는 반복적인 프로세스로, 조직은 비즈니스 상황을 추적하고 전략의 효과를 측정하며 성과를 개선하기 위해 필요한 조정을 지속적으로 수행한다.
비즈니스 인텔리전스와 데이터 기반 의사결정
· 비즈니스 인텔리전스는 데이터 기반 의사결정에 필요한 프레임워크, 도구 및 통찰을 제공하며, 이를 통해 조직은 데이터를 효과적으로 활용하고, 의미 있는 통찰을 얻으며, 정보에 입각한 의사결정을 내림으로써 비즈니스 성공과 경쟁력을 높일 수 있다.
· 데이터 기반 의사결정
→ 관련 데이터의 분석과 해석을 기반으로 정보에 입각한 선택과 전략적 계획을 세우는 접근 방식이다.
→ 데이터를 수집, 정리, 분석, 해석하여 통찰을 얻고 의사결정 프로세스를 추진하는 것을 포함한다.
→ 정확하고 신뢰할 수 있는 데이터를 사용하여 의사결정을 수행함으로써 편견을 줄이고 객관성을 높인다.
· 비즈니스 인텔리전스는 데이터 기반 의사결정의 토대가 되며, 비즈니스 인텔리전스가 제공한 통찰을 통해 의사결정자는 비즈니스의 현재 상태를 이해하고, 기회를 파악하며, 문제를 진단할 수 있다.
· 비즈니스 인텔리전스는 의사결정자에게 시의적절하고 정확한 정보를 제공한다.
→ 이를 뒷받침하기 위한 데이터 수집 및 통합이 보장되어야 한다.
· 비즈니스 인텔리전스는 의사결정 프로세스에 증거 기반 접근방식을 제공하여 조직의 목표와 목적에 부합하는 의사결정을 내릴 가능성을 높인다.
비즈니스 인텔리전스의 활용
· 비즈니스 인텔리전스를 효과적으로 사용하려면 기술, 데이터 거버넌스, 데이터 기반 사고방식이 필수적이며 이를 위한 단계와 고려사항이 필요하다.
· 비즈니스 목표 정의: 비즈니스 목표와 비즈니스 인텔리전스를 사용하여 해결하고자 하는 구체적인 질문 또는 과제를 명확하게 정의한다.
· 핵심성과지표 식별: 비즈니스 목표와 일치하고, 비즈니스 운영 및 성과에 대한 의미 있는 통찰을 제공하는 핵심성과지표를 설정한다.
→ 핵심성과지표(KPI, Key Performance Indicator): 조직의 성과를 모니터링하고 목표에 대한 진행 상황을 추적하는 데 도움이 되는 측정 가능한 지표.
· 데이터 수집 및 통합: 데이터베이스, 스프레드시트, 엔터프라이즈 시스템, API 등 다양한 소스에서 데이터를 수집하고 통합하며 정리하여 정확하고 일관성 있는 데이터를 준비한다.
→ 중복값 제거, 이상값 처리, 결측값 처리 등의 데이터 정제와 정규화, 표준화, 인코딩 등의 데이터 변환 작업을 포함.
· 비즈니스 인텔리전스 도구 선택: 사용자의 요구사항을 충족하는 적합한 비즈니스 인텔리전스 도구 또는 플랫폼을 선택한다.
→ 도구 선택 시 사용 편의성, 확장성, 데이터 시각화 기능, 보고 옵션, 기존 시스템과의 통합 등을 고려.
· 대시보드 디자인 및 개발: 비즈니스에 의미가 있고 사용자가 이해하기 쉬운 형식으로 데이터를 표현하며, 직관적이고 시각적으로 매력적인 대시보드를 디자인하고 개발한다.
→ 주요 지표, 차트 및 시각화를 적절히 배치하여 비즈니스 성과에 대한 포괄적인 개요를 제공.
→ 대시보드 디자인 시 대상 고객의 구체적인 요구사항을 면밀히 수집하고 분석하는 것이 중요.
· 데이터 분석 수행: 비즈니스 인텔리전스 도구를 사용하여 데이터의 추세, 패턴, 상관관계, 이상 징후 등을 탐색한다.
→ 통계기법, 데이터 마이닝, 데이터 시각화 등의 데이터 분석 방법을 사용.
→ 데이터 분석의 목적은 비즈니스에 대한 깊은 이해와 통찰을 발견하는 것이다.
· 보고서 및 시각화 생성: 분석을 기반으로 보고서와 시각화를 생성하여 분석 결과를 의사결정자에게 효과적으로 전달한다.
→ 명확하고 간결하며 시각적으로 매력적인 방식으로 정보를 제시.
→ 차트, 그래프, 표, 내러티브를 사용하여 주요 결과를 강조하고 스토리텔링 기법을 활용.
· 성과 모니터링 및 추적: 비즈니스 인텔리전스 솔루션을 사용하여 비즈니스 성과를 지속적으로 모니터링하고 추적한다.
→ 경고 및 알림을 설정하여 지표의 편차 또는 이상 징후를 사전에 식별하고 확인할 수 있도록 한다.
→ 대시보드와 보고서를 정기적으로 검토하여 변화에 대한 정보를 파악하고 필요한 경우 적시에 조치를 시행.
· 협업 및 통찰 공유: 팀과 부서 간 협업을 장려하고 통찰을 공유하여 데이터 기반 의사결정 문화를 조성하고 정착하도록 한다.
· 반복 및 개선: 반복적인 프로세스로 구현 효과를 지속적으로 평가하고 피드백을 수집하여 데이터, 핵심성과지표, 데이터 시각화 등을 지속적으로 개선하는 것이 중요하다.
· 사용자 훈련 및 교육: 비즈니스 인텔리전스를 효과적으로 활용할 수 있도록 조직 내 사용자에게 교육 및 훈련 프로그램을 제공한다.
→ 사용자가 독립적으로 데이터를 탐색하고 정보에 기반한 의사결정을 내릴 수 있도록 장려하여 데이터 기반 문화를 조성한다.