컴퓨터 공학 | 퀴즈 (8)

Faithful Dev·2025년 2월 2일

컴퓨터 공학

목록 보기
81/81

엔터프라이즈 비즈니스 아키텍처 및 데이터 모델링

엔터프라이즈 비즈니스 아키텍처

엔터프라이즈 비즈니스 아키텍처(EBA)는 조직의 전략, 목표, 프로세스를 정의하고 조정하는 프레임워크이다. 주요 구성 요소로는 사명(Mission), 목표(Goal), 전략(Strategy) 등이 있다. 사명은 기업의 존재 목적과 핵심 가치를 나타내며, 목표는 기업이 장기적으로 달성하고자 하는 결과를 의미한다. 전략은 목표를 달성하기 위한 실행 계획이며, 이를 측정하는 KPI 같은 지표가 필요하다.

주제영역(Subject Area)과 엔티티 유형 도출

주제영역(Subject Area)은 데이터 모델링에서 관련된 엔티티들을 논리적으로 그룹화하는 개념이다. 엔티티 유형(Entity Type)은 비즈니스 요구사항을 충족하는 정보 단위를 정의하며, 각 엔티티는 고유한 식별자(Primary Key)를 가져야 한다. 엔티티는 반드시 다른 엔티티와 관계를 가질 필요는 없으며, 독립적인 엔티티도 존재할 수 있다.

엔터프라이즈 정보 모델

엔터프라이즈 정보 모델(EIM)은 조직의 데이터 및 프로세스를 구조화하여 관리하는 프레임워크이다. 주요 구성 요소로 데이터 모델, 프로세스 모델, 그리고 이들의 상호작용 모델이 포함된다. 데이터 모델은 엔티티와 속성을 정의하며, 프로세스 모델은 업무 프로세스의 흐름을 표현한다. 상호작용 모델은 데이터와 프로세스 간의 관계를 설명하며, 묶음화(Clustering)를 통해 최적의 시스템 구조를 설계할 수 있다.


데이터 모델링 및 데이터 무결성

데이터 모델(Data Model)

데이터 모델은 데이터의 구조, 관계, 제약 조건 등을 정의하는 체계이다. 개념 데이터 모델은 현실 세계의 개념을 추상적으로 표현하며, 논리 데이터 모델은 이를 논리적으로 구조화하여 관계를 정의한다. 물리 데이터 모델은 논리 모델을 DBMS에 맞게 변환한 것으로, 저장 방식과 성능을 고려한다. 일반적으로 물리 데이터 모델은 구현 단계에서 완성된다.

속성(Attribute)과 속성 유형(Attribute Type)

속성(Attribute)은 엔티티(Entity)의 특징이나 정보를 나타내는 데이터 요소이다. 속성 유형(Attribute Type)은 동일한 형식과 의미를 가지는 속성 값들의 집합을 정의한다. 도메인(Domain)은 특정 속성 유형이 가질 수 있는 값의 범위를 의미하며, 예로 주소, 금액, 일자 등이 있다. 속성 값(Attribute Value)은 개별 엔티티의 속성에 대한 실제 데이터를 나타낸다.

식별자(Identifier)

식별자는 데이터베이스에서 엔티티를 유일하게 구별하는 속성 또는 속성의 조합이다. 주 식별자는 기본적으로 한 개만 존재하며, 부 식별자는 후보 키 중에서 주 식별자로 선택되지 않은 것들이다. 식별자는 반드시 유일성을 가져야 하며, NULL 값을 가질 수 없다. 관계 유형 자체는 식별자가 될 수 없으며, 일부 엔티티는 반드시 식별자를 가질 필요가 없다.

데이터 무결성(Data Integrity)

데이터 무결성이란 데이터의 정확성과 일관성을 유지하는 제약 조건을 의미한다.

  • 엔티티 무결성: 기본 키(Primary Key)는 NULL 값을 가질 수 없고, 유일해야 한다.
  • 도메인 무결성: 속성 값이 정의된 도메인(허용된 값의 범위) 내에 존재해야 한다.
  • 참조 무결성: 외래 키(Foreign Key)는 참조하는 기본 키가 존재해야 한다.
  • 데이터 무결성을 유지하면 데이터의 신뢰성과 일관성이 보장된다.

데이터베이스 설계 및 최적화

데이터 정의어(DDL, Data Definition Language)

DDL은 데이터베이스의 구조를 정의하거나 변경하는 SQL 명령어 집합이다.

  • CREATE: 테이블, 뷰, 인덱스 등을 생성한다.
  • ALTER: 기존 데이터베이스 객체를 수정한다.
  • DROP: 테이블이나 뷰 등의 객체를 삭제한다.
  • SELECT는 데이터를 조회하는 명령어로, DDL이 아니라 DML(Data Manipuliation Language)에 속한다.

데이터베이스 인덱스(Database Index)

인덱스는 데이터 검색 성능을 향상시키기 위해 특정 컬럼에 생성하는 자료 구조이다.

  • 검색 속도 향상: 인덱스를 사용하면 데이터를 빠르게 조회할 수 있다.
  • 유형: 대표적으로 B-Tree 인덱스와 Bitmap 인덱스가 있다.
  • 단점: 삽입, 삭제, 갱신 작업 시 인덱스도 함께 변경되므로 성능이 저하될 수 있다.
  • 관계형 DB에서 행에 대한 직접적인 접근을 제공하기보다는 색인을 통해 검색 성능을 높인다.

해싱(Hashing)

해싱은 키 값을 해시 함수를 이용해 특정 주소로 변환하여 데이터를 빠르게 검색하는 기법이다.

  • 빠른 검색: 해시 테이블을 활용하면 키를 기반으로 데이터를 O(1) 시간 복잡도로 조회할 수 있다.
  • 충돌(Collision) 문제: 두 개 이상의 키가 동일한 해시 값을 가질 수 있어 이를 해결하는 기법이 필요하다.
  • 범위 검색 비효율적: 해싱은 특정 키를 찾는 데 최적화되어 있으며, 범위 검색에는 부적절하다.
  • 고유 키 요구 아님: 해싱은 충돌 해결 기법을 사용하므로, 반드시 유일한 키 값이 필요하지는 않다.

성능 최적화를 위한 데이터 모델링 기법

역정규화(Denormalisation)

역정규화는 성능 최적화를 위해 정규화된 데이터 구조를 일부 의도적으로 결합하건 중복을 허용하는 기법이다.

  • 선조인(Prejoined) 테이블: 자주 조인되는 테이블을 미리 결합하여 조회 성능을 향상시키지만, 데이터 정확성 유지에는 불리하다.
  • 미러(Mirror) 테이블: 읽기 성능을 높이기 위해 동일한 데이터를 복제하여 여러 개의 테이블로 운영한다.
  • 분할(Split) 테이블: 접근 패턴이 다른 데이터를 분리하여 관리하여 성능을 최적화한다.
  • 역정규화는 성능을 개선할 수 있지만, 데이터 일관성 유지와 관리 복잡도가 증가할 수 있다.

One-to-One 관계의 역정규화 기법

One-to-One 관계를 가지는 두 테이블이 자주 함께 사용될 경우, 성능 최적화를 위해 병합(Combined) 테이블을 고려할 수 있다.

  • 병합(Combined) 테이블: 두 개의 테이블을 하나로 합쳐 조인을 최소화하고 조회 성능을 향상시킨다.
  • 선조인(Prejoined) 테이블: One-to-Many 관계에서 주로 사용되며, One-to-One 관계에는 적절하지 않다.
  • 미러(Mirror) 테이블: 읽기 부하 분산이 필요할 때 활용되며, One-to-One 관계와 직접적인 관련이 없다.
profile
Turning Vision into Reality.

0개의 댓글