Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 보안용어
- 자격증
- 리눅스마스터2급
- 클라우드
- 자격증공부
- 워게임
- 드림핵
- 보안
- study
- 복습
- Review
- wargame
- 정리
- 케이쉴드주니어
- IT
- 웹해킹
- it자격증
- Security
- 취약점진단
- Shell
- 위험관리
- 공부
- 리눅스
- 정보처리기사
- DreamHack
- webhacking
- keyword
- 기록
- Linux
- reivew
Archives
- Today
- Total
IT Memory Note
[정보처리기사] 데이터 입출력 구현 - 데이터 저장소(1) 본문
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) 다이어그램 기호
구성 | 기호 | |
개체 집합 | □ | (사각형) |
관계 집합 | ◇ | (마름모) |
속성 | ○ | (타원) |
다중 값 속성 | ⦾ | (이중타원) |
개체 집합-관계 집합 연결 | ㅡ | (실선) |
개체 집합-속성 연결 | ㅡ | (실선) |
관계 집합-속성 연결 | ㅡㅡㅡ | (점선) |
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사] 데이터 입출력 구현 : 데이터 저장소(3) (0) | 2024.08.08 |
---|---|
[정보처리기사] 데이터 입출력 구현 : 데이터 저장소(2) (0) | 2024.08.07 |
[정보처리기사] 화면 설계 : UI 설계(2) (1) | 2024.01.31 |
[정보처리기사] 화면 설계 - UI 설계(1) (0) | 2024.01.31 |
[정보처리기사] 화면 설계 : UI 요구사항 확인(2) (1) | 2024.01.31 |