728x90
데이터 모델
데이터 모델 개념 [2021년 1회]
- 데이터 모델은 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델
- 데이터 모델에 표시해야 할 요소에는 논리적 데이터 구조, 연산, 제약 조건이 있다.
표시요소 | 설명 |
연산 (Operation) |
- 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세 - 릴레이션을 조작하기 위한 관계 연산을 나타냄(SELECT, PROJECT, JOIN, DIVISION) |
구조 (Structure) |
- 데이터베이스에 논리적으로 표현될 대상으로서의 개체 타입과 개체 타입 간의 관계 - 데이터 구조 및 정적 성질을 표현하는 요소 |
제약 조건 (Constraint) |
- 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건 - 데이터 무결성 유지를 위한 DB의 보편적 방법 - 릴레이션의 특정 칼럼에 설정하는 제약을 의미(개체 무결성, 참조 무결성 등) |
데이터 모델 절차 [2020년 2회, 2021년 1회]
데이터 모델 절차는 요구사항 분석, 개념적 데이터 모델, 논리적 데이터 모델, 물리적 데이터 모델이 있다.
단계 | 모델 | 설명 |
요구조건 분석 |
- | 도출된 요구사항 간 상충을 해결하고 범위를 파악하여 외부 환경과의 상호작용을 분석을 통해 데이터에 대한 요구 분석 |
개념적 설계 |
개념적 데이터 모델 |
- 사용자의 요구에 대한 트랜잭션을 모델링 하는 단계 - 개념적 데이터 모델은 현실 세계에 대한 인식을 추상적, 개념적으로 표현하여 개념적 구조를 도출하는 데이터 모델 ![]() ![]() |
논리적 설계 |
논리적 데이터 모델 |
- 트랜잭션의 인터페이스를 설계하는 단계 - DBMS에 맞는 논리적 스키마를 설계하는 단계 - 논리적 데이터 모델은 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현한 데이터 모델 ![]() ![]() |
물리적 설계 |
물리적 데이터 모델 |
- 물리적 설계는 논리 데이터 모델을 특정 DBMS의 특성 및 성능을 고려하여 물리적인 스키마를 만드는 단계 - 물리적 데이터 모델은 논리 데이터 모델을 사용하고자 하는 각 DBMS의 특성을 고려하여 데이터베이스 저장 구조(물리 데이터 모델)로 변환하는 모델 ![]() ![]() |
논리적 데이터 모델 검증
관계 데이터 모델 [2017년 1회, 2회, 2018년 2회, 2019년 3회]
① 관계 데이터 모델 개념
- 관계 데이터 모델은 데이터를 행과 열로 구성된 2차원 테이블 형태로 구성한 모델이다.
- 수학자 E.F.Codd 박사가 제안한 모델이다.
② 관계 데이터 모델의 구성
구성요소 | 설명 |
릴레이션(Relation) | 행과 열로 구성된 테이블 |
튜플(Tuple) | 릴레이션 행(Row)에 해당되는 요소 |
속성(Attribute) | 릴레이션 열(Column)에 해당되는 요소 |
카디널리티(Cardinality) | 튜플(Tuple)의 수 |
차수(Degree) | 애트리뷰트(Column)의 수 |
스키마(Schema) | 데이터베이스의 구조, 제약 조건 등의 정보를 담고 있는 기본적인 구조 |
인스턴스(Instance) | 정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터의 집합 |
관계 대수
① 관계 대수 개념 [2021년 2회]
관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 정형 언어
② 관계 대수 연산자의 종류 [2018년 1회, 2020년 3회, 2021년 1회]
㉮ 일반 집합 연산자
일반 집합 연산자는 수학의 집합 개념을 릴레이션에 적용한 연산자
연산자 | 기호 | 표현 | 설명 |
합집합 (Union) |
⋃ | R⋃S | 합병 가능한 두 릴레이션 R과 S의 합집합 |
교집합 (Intersection) |
⋂ | R⋂S | 릴레이션 R과 S에 속하는 모든 튜플로 결과 릴레이션 구성 |
차집합 (Difference) |
- | R-S | R에 존재하고 S에 미 존재하는 튜플로 결과 릴레이션 구성 |
카티션 프로덕트 (CARTESIAN Product) |
X | RXS | R과 S에 속한 모든 튜플을 연결해 만들어진 새로운 튜플로 릴레이션 구성 |
㉯ 순수 관계 연산자
관계 데이터베이스에 적용할 수 있도록 특별히 개발한 관계 연산자
연산자 | 기호 | 표현 | 설명 |
셀렉트 (Select) |
σ | σ(R) -조건 | 릴레이션 R에서 조건을 만족하는 튜플 반환 |
프로젝트 (Project) |
π | π(R) -속성리스트 | 릴레이션 R에서 주어진 속성들의 값으로만 구성된 튜플 반환 |
조인 (Join) |
⋈ | R⋈S | 공통 속성을 이용해 R과 S의 튜플들을 연결해 만들어진 튜플 반환 |
디비전 (Division) |
÷ | R÷S | 릴레이션 S의 모든 튜플과 관련 있는 R의 튜플 반환 |
정규화
이상 현상(Anomaly) [2020년 4회]
- 이상 현상은 데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상이다.
- 삽입, 삭제, 갱신 이상이 있다.
이상 현상 | 설명 |
삽입 이상 | 정보 저장 시 해당 정보의 불필요한 세부정보를 입력해야 하는 경우 |
삭제 이상 | 정보 삭제 시 원치 않는 다른 정보가 같이 삭제되는 경우 |
갱신 이상 | 중복 데이터 중에서 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우 |
반 정규화 [2020년 1회]
반 정규화(De-Normalization) 개념
- 반 정규화는 정규화된 엔터티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법이다.
- 비정규화, 역정규화라고도 불린다.
반 정규화 특징
장점 | 단점 |
- 반 정규화된 데이터 구조는 성능 향상과 관리의 효율성이 증가 | - 데이터의 일관성 및 정합성 저하 - 유지를 위한 비용이 별도로 발생하여 성능에 나쁜 영향을 미칠 수 있음 |
반 정규화를 위해서는 데이터의 일관성과 무결성을 우선으로 할지 데이터베이스의 성능과 단순화에 우선순위를 둘 것인지를 비교하여 조정하는 과정이 중요
반 정규화 기법
구분 | 수행 방법 | 설명 |
테이블 | 테이블 병합 |
- 1:1 관계, 1:M 관계를 통합하여 조인 횟수를 줄여 성능을 향상 - 슈퍼타입/ 서브타입 테이블 통합 통해 성능 향상 |
테이블 분할 |
- 테이블을 수직 또는 수평으로 분할하는 것으로 파티셔닝이라고 함![]() |
|
중복 테이블 추가 |
- 대량의 데이터들에 대한 집계함수(GROUP BY, SUM 등)를 사용하여 실시간 통계 정보를 계싼하는 경우에 효과적인 수행을 위해 별도의 통계 테이블을 두거나 중복 테이블을 추가![]() |
|
컬럼 | 컬럼 중복화 |
조인 성능 향상을 위한 중복 허용 |
관계 | 중복관계 추가 |
데이터를 처리하기 위한 여러 경로를 거쳐 조인이 가능하지만, 이때 발생할 수 있는 성능 저하를 예방하기 위해 추가적 관계를 맺는 방법 |
데이터 마이닝(Data Minning)
데이터 마이닝 개념 [2020년 1회]
- 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아내는 기술
- 데이터 마이닝은 대규모 데이터에서 의미 있는 패턴을 파악하거나 예측하여 의사결정에 활용하는 기법
- 데이터 마이닝은 데이터의 숨겨진 정보를 찾아내어 이를 기반으로 서비스와 제품에 도입하는 과정
- 통계분석은 가설이나 가정에 따른 분석, 검증을 하지만 데이터 마이닝은 수리 알고리즘을 활용하여 대규모 데이터에서 의미있는 정보를 찾아냄
[참고 : 수제비 2022]
'자격증 > 정보처리기사' 카테고리의 다른 글
chapter 05. 인터페이스 구현 (0) | 2022.04.24 |
---|---|
chapter 04. 통합 구현 (0) | 2022.04.24 |
chapter 02. 화면 설계 (2) (0) | 2022.04.21 |
chapter 02. 화면 설계 (1) (1) | 2022.04.20 |
chapter 01. 소프트웨어 개발 방법론 (3) (0) | 2022.04.20 |