관리 메뉴

나구리의 개발공부기록

Chapter 01 - 데이터 저장소(1) 본문

2024년도 수제비 실기책(6판) 내용 정리


1.데이터 모델

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

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

2) 데이터 모델 절차 (요->개->논->물)

  • 요구조건 분석 -> 개념적 설계(개념적 데이터 모델) -> 논리적 설계(논리적 데이터 모델) -> 물리적 설계(물리적 데이터 모델)

데이터 모델 개념도

 

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

 

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

 

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

단계 모델 설명
요구조건
분석
- 도출된 요구사항 간 상충을 해결하고 범위를 파악하여 외부 환경과의 상호 작용을 분석을 통해 데이터에 대한 요구 분석
개념적
설계
개념적
데이터
모델
사용자의 요구에 대한 트랜잭션을 모델링하는 단계
현실 세계에 대한 인식을 추상적, 개념적으로 표현하여 개념적 구조를 도출하는 데이터 모델

트랜잭션 모델링, 뷰(View) 통합 방법 및 속성(Attribute) 합성 고려
개념적 데이터 모델링은 DB 종류와 관계가 없고 주요 산출물은 개체 - 관계 다이어그램이 있음

논리적
설계
논리적
데이터
모델
트랜잭션의 인터페이스를 설계하는 단계
DBMS에 맞는 논리적 스키마를 설계하는 단계
업무의 모습을 모델링 표기법으로 형상화 하여 사람이 이해하기 쉽게 표현한 데이터 모델

논리적 데이터 모델을 통해 '관계 데이터 모델', '계층 데이터 모델', '네트워크 데이터 모델', '객체 지향 데이터 모델', '객체-관계 데이터 모델' 중 하나의 모델에 맞게 설계
관계형 데이터베이스에서는 테이블을 설계하는 단계
논리적 설계 단계에서 정규화를 수행
논리적 데이터베이스 구조로 매핑(Mapping)
스키마의 평가 및 정제

물리적
설계
물리적
데이터
모델
논리 데이터 모델을 사용하고자 하는 각 DBMS의 특성을 고려하여 데이터 베이스 저장 구조(물리 데이터 모델)로 변환하는 모델

테이블(Table),인덱스(Index),뷰(View),파티션(Partition) 등 객체를 생성
응답시간, 저장 공간의 효율화, 트랜잭션 처리를 고려하여 설계
성능 측면에서 반 정규화를 수행
레코드 집중의 분석 및 설계
저장 레코드 양식 설계
접근 경로(Access Path) 설계


2. 논리 데이터 모델

1) 논리 데이터 모델링 개념

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

** 개념 모델 : 주제영역과 핵심 데이터 집합간의 관계를 정의하는 모델, 전체 모델에서 중요한 골격이 되는 개체와 관계(Relationship)위주의 모델

 

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

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

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

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

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

3) 관계 데이터 모델

(1) 관계 데이터 모델

 

[1] 관계 데이터 모델(Relation Data Model) 개념

 

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

[2] 관계 데이터 모델의 구성

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

 

** 스미카를 릴레이션 스키마, 인스턴스를 릴레이션 인스턴스라고도 함

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

(2) 관계 대수

 

[1] 관계 대수(Relational Algebra) 개념 : 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 정형 언어

 

[2] 관계 대수 연산자의 종류

 

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

 

  • 순수 관계 연산자 : 관계 데이터베이스에 적용할 수 있도록 특별히 개발한 관계 연산자
연산자 기호 표현 설명
셀렉트(Select) σ σ조건(R) 릴레이션 R에서 조건을 만족하는 튜플 반환
프로젝트(Project) 𝜋 𝜋속성리스트(R) 릴레이션 R에서 주어진 속성들의 값으로만 구성된 튜플 반환
조인(Join) R⋈S 공통 속성을 이용해 R과 S의 튜플들을 연결해 만들어진 튜플 반환
디비전(Division) ÷ R÷S 릴레이션 S의 모든 튜플과 관련 있는 R의 튜플 반환

 

(3) 관계 해석

 

[1] 관계 해석(Relational Calculus) 개념 : 튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어

 

[2] 관계 해석 특징 : 프레디킷 해석(Predicate Calculus)에 기반한 언어이며 비절차적 언어(원하는 정보가 무엇이라는 것만 선언)

 

(3) 관계 대수와 관계 해석 비교

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

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

(1) 개체(Entity)

 

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

(2) 속성(Attribute)

 

  • 개체가 가지고 있는 요소 또는 성질
  • 피터 챈 모델에서는 속성을 타원형으로 표시
  • 까마귀발 모델에서는 속성을 표 내부에 표시

(3) 관계(Relationship)

 

  • 두 개체(Entity) 간의 관계를 정의
  • 피터 챈 모델에서 관계는 마름모로 표시
  • 까마귀발 모델에서는 아래의 그림과 같이 표시

까마귀발 모델 표기법

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

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

 

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

ER다이어그램 설명도

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

구분 기호
개체 집합 ◻︎ 사각형
관계 집합 마르모
속성 타원
다중 값 속성 이중타원
개체 집합 - 관계 집합 연결 실선
개체 집합 - 속성 연결 실선
관계 집합 - 속성 연결 ‑ ‑ ‑ 점선