2025. 4. 8. 21:10ㆍ자격증/정보처리기사
1 데이터 모델
(1) 데이터 모델(Data Model) [2021년 1회]
• 데이터 모델은 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델이다.
• 데이터 모델에 표시해야 할 요소에는 논리적 데이터 구조, 연산, 제약 조건이 있다.
■ 데이터 모델 표시요소
구조 (Structure) |
- 데이터베이스에 논리적으로 표현될 대상으로서의 개체 타입과 개체 타입 간의 관계 - 데이터 구조 및 정적 성질을 표현하는 요소 |
연산 (Operation) |
- 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세 - 릴레이션을 조작하기 위한 관계 연산을 나타냄(SELECT, PROJECT, JOIN, DIVISION) |
제약 조건 (Constraint) |
- 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건 - 데이터 무결성 유지를 위한 DB의 보편적 방법 - 릴레이션의 특정 컬럼에 설정하는 제약의 의미(개체 무결성, 참조 무결성 등) |
■ 데이터 모델 절차
요구조건 분석 |
- | - 도출된 요구사항 간 상충을 해결하고 범위를 파악하며 외부 환경과의 상호작용을 분류를 통해 데이터에 대한 요구 분석 |
개념적 설계 |
개념적 데이터 모델 |
- 개념적 설계는 사용자의 요구에 따라 트랜잭션을 모델링 하는 단계 - 개념적 데이터 모델은 현실 세계에 대한 인식을 추상적, 개념적으로 표현하여 개념적 구조로 표현하는 데이터 모델 |
논리적 설계 |
논리적 데이터 모델 |
- 논리적 설계는 트랜잭션의 인터페이스를 설계하는 단계 - DBMS에 맞는 논리적 스키마를 설계하는 단계 - 논리적 데이터 모델은 업무의 종류를 불문하고 컴퓨터 활용상황이나 사람이 이해하기 쉽게 표현한 데이터 모델 |
물리적 설계 |
물리적 데이터 모델 |
- 논리 데이터 모델을 사용하고자 하는 각 DBMS의 특성을 고려하여 데이터베이스 저장 구조(물리 데이터 모델)로 변환하는 모델 |
2 논리 데이터 모델
■ 논리적 데이터 모델링 종류
관계 데이터 모델 | - 논리적 구조가 2차원 테이블 형태로 구성된 모델 - 기본 키(PK)와 이를 참조하는 외래 키(FK)로 관계 표현 - 1:1, 1:N, N:M 관계를 자유롭게 표현 |
계층 데이터 모델 | - 논리적 구조가 트리 형태로 구성된 모델 - 상하관계 존재(부모 개체–자식 개체) - 1:N 관계만 허용 |
네트워크 데이터 모델 |
- 논리적 구조가 그래프 형태로 구성된 모델 - CODASYL DBTG 모델이라고 불림 - 상위와 하위 레코드 사이에 다대다(N:M) 관계를 만족하는 구조 |
관계 데이터 모델 [2017년 1회, 2회, 2018년 2회, 2019년 3회, 2023년 1회]
① 관계 데이터 모델(Relation Data Model) 개념
• 관계 데이터 모델은 데이터를 행과 열로 구성된 2차원 테이블 형태로 구성한 모델이다.
• 수학자 E.F. Codd 박사가 제안한 모델이다.
② 관계 데이터 모델의 구성
릴레이션(Relation) | 행(Row)와 열(Column)로 구성된 테이블 |
튜플(Tuple) | 릴레이션의 행(Row)에 해당되는 요소 |
속성(Attribute) | 릴레이션의 열(Column)에 해당되는 요소 |
카디널리티(Cardinality) | 튜플(Row)의 수 |
차수(Degree) | 애트리뷰트(Column)의 수 |
스키마(Schema) | 데이터베이스의 구조, 제약 조건 등의 정보를 담고 있는 기본적인 구조 |
인스턴스(Instance) | 정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터의 집합 |
관계 대수
① 관계 대수(Relational Algebra) 개념 [2021년 2회]
• 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 정형 언어이다.
② 관계 대수 연산자의 종류 [2018년 1회, 2020년 3회, 2021년 1회, 2022년 2회, 3회]
🔹 일반 집합 연산자
일반 집합 연산자는 수학의 집합 개념을 릴레이션에 적용한 연산자이다.
합집합 (Union) |
∪ | R ∪ S | 합병 가능한 두 릴레이션 R과 S의 합집합 |
교집합 (Intersection) |
∩ | R ∩ S | 릴레이션 R과 S에 속하는 모든 튜플로 구성 |
차집합 (Difference) |
− | R − S | R에 존재하고 S에 존재하지 않는 튜플로 구성 |
카티션 프로덕트 (Cartesian Product) |
× | R × S | R과 S에 속한 모든 튜플을 연결해 만들어진 새로운 튜플로 릴레이션 구성 |
🔹 순수 관계 연산자 [2023년 3회]
순수 관계 연산자는 관계 데이터베이스에 적용할 수 있도록 특별히 개발한 관계 연산자이다.
셀렉트 (Select) | σ | σ조건(R) | 릴레이션 R에서 조건을 만족하는 튜플 반환 |
프로젝션 (Project) | π | π속성리스트(R) | 릴레이션 R에서 주어진 속성의 값으로만 구성된 튜플 반환 |
조인 (Join) | ⋈ | R ⋈ S | 공통 속성을 이용해 R과 S의 튜플을 연결해 만들어진 튜플 반환 |
디비전 (Division) | ÷ | R ÷ S | 릴레이션 S의 모든 튜플과 관련 있는 R의 튜플 반환 |
관계 해석 [2022년 2회]
① 관계 해석(Relational Calculus) 개념
• 관계 해석은 튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어이다.
② 관계 해석 특징
• **프레디킷 해석(Predicate Calculus)**에 기반한 언어이며,
비절차적 언어(원하는 정보가 무엇이라는 것만 선언)이다.
관계 대수와 관계 해석 비교
특징 | 절차적 언어(순서 명시) | 비절차적 언어(계산 수식의 유연함 사용) |
목적 | 어떻게 유도하는가? (How) | 무엇을 얻을 것인가? (What) |
종류 | 순수관계 연산자, 일반집합 연산자 | 튜플 관계 해석, 도메인 관계 해석 |
논리 데이터 모델링 속성
1. 개체(Entity)
• 개체는 데이터베이스에 표현하려는 사람 또는 사물이다.
• 피터 챈 모델(Peter Chen Model)에서는 개체를 사각형(□)으로 표시한다.
• 까마귀발 모델(Crow’s Foot Model)에서는 개체를 표 형식으로 표시한다.
2. 속성(Attribute)
• 속성은 개체가 가지고 있는 요소 또는 성질이다.
• 피터 챈 모델(Peter Chen Model)에서는 속성을 타원형(◯)으로 표시한다.
• 까마귀발 모델(Crow’s Foot Model)에서는 속성을 표 내부에 표시한다.
2. 관계(Relationship)
• 두 개체(Entity) 간의 관계를 정의한다.
• 피터 챈 모델(Peter Chen Model)에서는 속성을 타원형(◇)으로 표시한다.
• 까마귀발 모델(Crow’s Foot Model)에서는 속성을 표 내부에 표시한다.
개체–관계(E–R) 모델 [2022년 3회]
1. 개체–관계(E–R) 모델 개념
• E–R 모델은 현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해 가장 널리 사용되고 있는 모델이다.
• 논리 데이터 모델링에서는 모든 이해당사자와 의사소통의 보조 자료로 E–R 모델을 활용한다.
■ 개체–관계 다이어그램 기호표
개체 집합 | □ | 사각형 |
관계 집합 | ◇ | 마름모 |
속성 | ○ | 타원 |
다중 값 속성 | ◎ | 이중타원 |
개체 집합–관계 집합 연결 | — | 실선 |
개체 집합–속성 연결 | — | 실선 |
관계 집합–속성 연결 | ···· | 점선 |
정규화
❶ 이상 현상(Anomaly) [2020년 4회, 2022년 1회]
• 이상 현상은 데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상이다.
■ 데이터베이스 이상 현상
삽입 이상 | 정보 저장 시 해당 정보의 불필요한 세부정보를 입력해야 하는 경우 |
삭제 이상 | 정보 삭제 시 원치 않는 다른 정보가 같이 삭제되는 경우 |
갱신 이상 | 중복 데이터 중에서 특정 부분만 수정되어 값이 불일치하게 되는 경우 |
❷ 함수 종속
① 함수 종속(FD; Functional Dependency) 개념
• 함수 종속은 릴레이션에서 속성의 의미와 속성 간 상호 관계로부터 발생하는 제약조건이다.
② 결정자/종속자
• X → Y 관계일 때, X는 결정자(Determinant), Y는 종속자(Dependent)이다.
③ 함수 종속 종류
부분 함수 종속 (Partial Functional Dependency) |
릴레이션에서 기본 키가 복합 키일 경우, 기본 키를 구성하는 속성 중 일부에게 종속된 경우 |
완전 함수 종속 (Full Functional Dependency) |
릴레이션에서 X → Y 관계가 있을 때, Y는 X의 전체 속성에 대해 종속하고, 부분 집합 속성에 종속하지 않는 경우 |
이행 함수 종속 (Transitive Functional Dependency) |
릴레이션에서 X → Y, Y → Z 종속 관계가 있을 때, X → Z가 성립되는 경우 |
정규화(Normalization)의 개념
• 정규화는 관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상을 방지하고,
데이터의 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정이다.
■ 데이터베이스 정규화 단계
1정규형(1NF) | 원자값으로 구성 |
2정규형(2NF) | 부분 함수 종속 제거 (완전 함수적 종속 관계) |
3정규형(3NF) | 이행함수 종속 제거 |
보이스–코드 정규형(BCNF) | 결정자 후보 키가 아닌 함수 종속 제거 |
4정규형(4NF) | 다치(다중 값) 종속 제거 |
5정규형(5NF) | 조인 종속 제거 |
반 정규화 [2020년 1회]
❶ 반 정규화(De-Normalization) 개념
• 반 정규화는 정규화된 엔터티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법이다.
• 비정규화, 역정규화라고도 불린다.
3 물리 데이터 모델
❶ 데이터베이스 무결성(Database Integrity)
• 데이터 무결성은 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 성질이다.
❷ 데이터베이스 무결성 종류 [2023년 3회]
개체 무결성 (Entity Integrity) |
- 한 엔터티에서 같은 기본 키(PK)를 가질 수 없거나, 기본 키(PK)의 속성이 NULL을 허용할 수 없는 제약조건 | - 기본 키(Primary Key) - 유니크 인덱스(Unique Index) |
참조 무결성 (Referential Integrity) |
- 외래 키가 참조하는 다른 개체의 기본 키에 해당하는 값이 기본 키값이나 NULL이어야 하는 제약 조건 | - 외래 키(Foreign Key) |
속성 무결성 (Attribute Integrity) |
- 속성의 값은 기본값, NULL 여부, 도메인(데이터 타입, 길이)이 지정된 규칙을 준수해야 하는 제약 조건 | - 체크(CHECK) - NULL / NOT NULL - 기본값(DEFAULT) |
사용자 정의 무결성 (User-Defined Integrity) |
- 사용자의 의미적 요구사항을 준수해야 하는 제약 조건 | - 트리거(Trigger) - 사용자 정의 데이터 타입(User Defined Data Type) |
키 무결성 (Key Integrity) |
- 한 릴레이션에서 같은 키 값을 가진 튜플들을 허용할 수 없는 제약 조건 | - 유니크(Unique) |
키 (Key)
❶ 키(Key) 개념
• 키는 데이터베이스에서 조건을 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 기준이 되는 속성이다.
❷ 키 특성 [2022년 1회]
유일성 (Uniqueness) | 식별자에 의해 엔터티 내의 모든 튜플들을 유일하게 구분하는 특성 |
최소성 (Minimality) | 최소한의 속성으로 식별자를 구성하는 특성 |
❸ 키 종류
기본 키 (Primary Key) | 테이블의 각 튜플들을 고유하게 식별하는 키 |
대체 키 (Alternate Key) | 후보 키 중에서 기본 키로 선택되지 않은 키 |
후보 키 (Candidate Key) | 테이블에서 각 튜플을 구별하는 데 기준이 되는 키 |
슈퍼 키 (Super Key) | 릴레이션을 구성하는 모든 튜플에 대해 유일성을 만족하지만 최소성은 만족하지 못하는 키 |
외래 키 (Foreign Key) | 한 릴레이션의 컬럼이 다른 릴레이션의 기본 키로 이용되는 키 → 테이블 간 참조 데이터 무결성을 위한 제약 조건 |
인덱스(Index)
• 인덱스는 검색 연산의 최적화를 위해 데이터베이스 내 열에 대한 정보를 구성한 데이터 구조이다.
• 인덱스를 통해 전체 데이터를 검색하지 않고도 필요한 정보에 대해 신속한 조회가 가능하다.
파티셔닝
❶ 파티셔닝(Partitioning) 개념
• 파티셔닝은 테이블 또는 인덱스 데이터를 파티션(Partition) 단위로 나누어 저장하는 기법이다.
❷ 파티션의 유형
① 레인지 파티셔닝 (Range Partitioning)
• 연속적인 숫자나 날짜를 기준으로 하는 파티셔닝 기법.
• 손쉬운 관리 기법을 제공하여 관리 시간의 단축이 가능하다.
② 해시 파티셔닝 (Hash Partitioning)
• 파티션 키의 해시 함수 값에 의해 분할
• 균등한 데이터 분할이 가능하고 질의 성능이 향상됨
③ 리스트 파티셔닝 (List Partitioning)
• 특정 파티션에 저장될 데이터에 대한 명시적 제어가 가능한 기법
• 분포도가 비슷하고 조건이 많이 들어오는 SQL에서 유용
④ 컴포지트 파티셔닝 (Composite Partitioning)
• 레인지 + 해시, 레인지 + 리스트 등 두 개 이상의 파티셔닝을 결합
⑤ 라운드로빈 (Round-Robin)
• 라운드로빈 방식으로 회전하며 새로운 행을 파티션에 할당
• 고른 분포를 원할 때 사용
'자격증 > 정보처리기사' 카테고리의 다른 글
정보처리기사 모의고사 1회 오답노트 (0) | 2025.04.09 |
---|---|
[정보처리기사 실기] 응용 SW 기초 기술 활용 (0) | 2025.04.08 |
[정보처리기사 실기] 소프트웨어 개발 보안 구축 2 (1) | 2025.04.07 |
[정보처리기사 실기] 소프트웨어 개발 보안 구축 1 (0) | 2025.04.07 |
정보처리기사 디자인 패턴 정리 (1) | 2025.04.05 |