IT Memory Note

[정보처리기사] 데이터 입출력 구현 - 데이터 저장소(1) 본문

자격증/정보처리기사

[정보처리기사] 데이터 입출력 구현 - 데이터 저장소(1)

h00ddu 2024. 7. 17. 17:30

 

1️⃣ 데이터 모델

 


(1) 데이터 모델(Data Model)의 개념

 

  • 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델
  • 데이터 모델에 표시해야 할 요소 : 논리적 데이터 구조, 연산, 제약 조건
표시요소 설명
구조
(Structure)
• DB에 논리적으로 표현될 대상으로서의 개체 타입과 개체 타입 간의 관계
• 데이터 구조 및 정적 성질을 표현하는 요소
연산
(Operation)
• DB에 저장된 실제 데이터를 처리하는 작업에 대한 명세
• 릴레이션을 조작하기 위한 관계 연산을 나타냄(SELECT, PROJECT, JOIN, DIVISION)
제약 조건
(Constraint)
• DB에 저장될 수 있는 실제 데이터의 논리적인 제약 조건
• 데이터 무결성 유지를 위한 DB의 보편적 방법
• 릴레이션의 특정 컬럼에 설정하는 제약(개체 무결설, 참조 무결성 등)

 


(2) 데이터 모델 절차

 

데이터 모델 개념도

단계 모델 설명
요구조건 분석 - 도출된 요구사항 간 상충을 해결하고 범위를 파악하여 외부 환경과의 상호작용을 분석을 통해 데이터에 대한 요구 분석
개념적 설계 개념적 데이터 모델 개념적 설계 : 사용자의 요구에 대한 트랜잭션을 모델링 하는 단계
개념적 데이터 모델 : 현실 세계에 대한 인식을 추상적, 개념적으로 표현하여 개념적 구조를 도출하는 데이터 모델
- 트랜잭션 모델링, 뷰(View) 통합 방법 및 속성(Attribute) 합성 고려
- 개념적 데이터 모델은 DB 종류와 관계가 없음
- 주요 산출물 : 개체-관계 다이어그램

논리적 설계 논리적 데이터 모델 논리적 설계 : 트랜잭션의 인터페이스를 설계하는 단계
DBMS에 맞는 논리적 스키마를 설계하는 단계
논리적 데이터 모델 : 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현한 데이터 모델
 - 논리적 데이터 모델을 통해 '관계 데이터 모델', '계층 데이터 모델', '네트워크 데이터 모델', '객체 지향 데이터 모델', '객체-관계 데이터 모델' 중 하나의 모델에 맞게 설계
 - 관계형 DB에서는 테이블을 설계하는 단계
 - 논리적 설계 단계에서 정규화를 수행
 - 논리적 DB 구조로 매핑(Mapping)
 - 스키마의 평가 및 정제

물리적 설계 물리적 데이터 모델  논리 데이터 모델을 사용하고자 하는 각 DBMS의 특성을 고려하여 DB 저장구조(물리 데이터 모델)로 변환하는 모델
 - 테이블(Table), 인덱스(Index), 뷰(View), 파티션(Partition) 등 객체를 생성
 - 응답시간, 저장공간의 효율화, 트랜잭션 처리를 고려하여 설계
 - 성능 측면에서 반 정규화를 수행
 - 레코드 집중의 분석 및 설계
 - 저장 레코드 양식 설계
 - 접근 경로(Access Path) 설계

※ 개체-관계 다이어그램(ERD, Entity Relationship Diagram) : 각 업무 분석에서 도출된 엔터티 간의 관계를 이해하기 쉽게 도식화한 다이어그램

※ 정규화(Nomalization) : 관계형 데이터 모델에서 데이터 중복성을 제거하여, 이상 현상을 방지하고, 데이터 일관성과 정확성을 유지하기 위해 무손실 분해를 하는 과정

※ 반 정규화(De-Nomalization) : 정규화된 엔터티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법


 

2️⃣ 논리 데이터 모델

 


(1) 논리 데이터 모델의 개념

 

  • 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현하는 프로세스
  • 개념 모델로부터 업무 영역의 업무 데이터 및 규칙을 구체적으로 표현한 모델

 

※ 개념 모델

 - 주제 영역과 핵심 데이터 집합 간의 관계를 정의하는 모델

 - 전체 모델에서 중요한 골격이 되는 개체와 관계(Relationship) 위주의 모델 

 

※ FK(Foreign Key, 외래 키) : 어느 한 릴레이션 속성의 집합이 다른 릴레이션의 기본키


(2) 논리적 데이터 모델링의 종류

 

종류 설명
관계 데이터
모델
논리적 구조가 2차원 테이블 형태로 구성된 모델
기본 키(PK)와 이를 참조하는 외래 키(FK)로 관계 표현
1:1, 1:N, N:M 관계를 자유롭게 표현


계층 데이터
모델
논리적 구조가 트리 형태로 구성된 모델
상하관계 존재(부모 개체-자식 개체)
1:N 관계만 허용

네트워크 데이터모델 논리적 구조가 그래프 형태로 구성된 모델
CODASYL DBTG 모델이라고 불림
상위와 하위 레코드 간에 N:M(다대다) 관계를 만족하는 구조


 


(3) 관계 데이터 모델(Relation Data 

 

1. 관계 데이터 모델

 

⓵ 관계 데이터 모델의 개념

 

  • 데이터를 행과 열로 구성된 2차원 테이블 형태로 구성한 모델
  • 수학자 E.F.Codd 박사가 제안한 모델

⓶ 관계 데이터 모델의 구성

 

구성요소 설명
릴레이션(Relation) 행(Row)과 열(Column)로 구성된 테이블
튜플(Tuple) 릴레이션의 행(Row)에 해당되는 요소
속성(Attribute) 릴레이션의 열(Column)에 해당되는 요소
카디널리티(Cadinality) 튜플(Row)의 수
차수(Degree) 애트리뷰트(Column)의 수
스키마(Schema) DB의 구조, 제약 조건 등의 정보를 담고 있는 기본적인 구조
인스턴스(Instance) 정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터의 집합

관계 데이터 모델에서의 구성


2. 관계 대수(Relational Algebra)

 

⓵ 관계 대수의 개념

 

  • 관계형 DB에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 정형 언어

⓶ 관계 대수 연산자의 종류

 

  ㉮ 일반 집합 연산자

 

   - 수학의 집합 개념을 릴레이션에 적용한 연산자

 

연산자 기호 표현 설명
합집합(Union) R S 합병 가능한 두 릴레이션 R과 S의 합집합
교집합(Untersection) R S 릴레이션 R과 S에 속하는 모든 튜플로 결과 릴레이션 구성
차집합(Difference) - R - S R에 존재하고 S에 미 존재하는 튜플로 결과 릴레이션 구성
카티션 프로덕트
(CARTESIAN Product)
X R X S R과 S에 속한 모든 튜플을 연결해 만들어진 새로운 튜플로 릴레이션 구성

 


  ㉯ 순수 관계 연산자

 

   - 관계 DB에 적용할 수 있도록 특별히 개발한 관계 연산자

 

연산자 기호 표현 설명
셀렉트(Select) σ σ(조건)(R) 릴레이션 R에서 조건을 만족하는 튜플 반환
프로젝트(Project) π π(속성 리스트)(R) 릴레이션 R에서 주어진 속성들의 값으로만 구성된 튜플 반환
조인(Join) R  S 공통 속성을 이용해 R과 S의 튜플들을 연결해 만들어진 튜플 반환
디비전(Division) R S 릴레이션 S의 모든 튜플과 관련 있는 R의 튜플 반환

 


3. 관계 해석(Relational Calculus)

 

⓵ 관계 해석의 개념

 

  • 튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어

⓶ 관계 해석 특징

 

  • 프레디킷 해석(Predicate Calculus)에 기반한 언어이며 비절차적 언어(원하는 정보가 무엇이라는 것만 선언)

4. 관계 대수와 관계 해석 비교

 

구분 관계 대수 관계 해석
특징 절차적 언어(순서 명시) 비절차적 언어(계산 수식의 유연적 사용)
목적 어떻게 유도하는가?(How) 무엇을 얻을 것인가?(What)
종류 순수 관계 연산자, 일반 집합 연산자 튜플 관계 해석, 도메인 관계 해석

 


 

(4) 논리 데이터 모델링 속성

 

1. 개체(Entity)

 

  • DB에 표현하려는 사물 또는 사건
  • 피터 챈 모델(Peter Chen Model)에서는 개체를 사각형으로 표시함
  • 까마귀발 모델(Crow's Foot Model)에서는 속성을 표 형식으로 표시함

2. 속성(Attribute)

 

  • 개체가 가지고 있는 요소 또는 성질
  • 피터 챈 모델(Peter Chen Model)에서는 속성을 타원형으로 표시함
  • 까마귀발 모델(Crow's Foot Model)에서는 속성을 표 내부에 표시함

3. 관계(Relationship)

 

  • 두 개체(Entity) 간의 관계를 정의함
  • 피터 챈 모델(Peter Chan Model)에서 관계는 마름모로 표시함
  • 까마귀발 모델(Crow's Foot Model)에서는 속성을 다음 표와 같이 표시함
관계 표시 의미
1:1 관계
1:n 관계
n:m 관계

 


(5) 개체-관계(E-R) 모델

 

1. 개체-관계(E-R) 모델의 개념

 

  • 현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해서 가장 널리 사용되고 있는 모델
  • 논리 데이터 모델링에서는 모든 이해당사자와 의사소통의 보조 자료로 E-R 모델을 활용함
  • 요구사항으로부터 얻어낸 정보들을 개체, 속성, 관계로 기술한 모델

2. 개체-관계(E-R) 다이어그램 기호

 

구성 기호
개체 집합 (사각형)
관계 집합 (마름모)
속성 (타원)
다중 값 속성 (이중타원)
개체 집합-관계 집합 연결 (실선)
개체 집합-속성 연결 (실선)
관계 집합-속성 연결 ㅡㅡㅡ (점선)