데이터 입출력 구현(논리, 물리데이터베이스 설계, 조작 프로시저 등)
데이터 모델링 절차
비스니스 요구상 -> ==개념적== 데이터 모델링 -> ==논리적== 데이터 모델링 -> ==물리적== 데이터 모델링 -> 데이터베이스 구축
- 개념적 데이터 모델링: 현실 세계의 인식을 추상적인 개념으로 모델링
- 논리적 데이터 모델링: 개념적 구조를 컴퓨터가 이해할 수 있는 형태로 변환
데이터 모델링
- 기업의 정보 구조를 실체(Entity)와 관계(Relation)를 중심으로 명확하고 체계적으로 표현하여 문서화 하는 기법을 말한다.
데이터 모델링 특성
- 업무 흐름 파악 용이
- 데이터 무결성 보장 (데이터 값의 정확성 보장)
- 데이터 중복 제거 및 정보의 일관성 유지
데이터 모델의 3요소
- 연산 (Operation): 실제 데이터를 처리하는 작업
- 구조 (Structure): 개체 간의 관계를 논리적으로 어떻게 표현할 것인가
- 제약조건 (Constraint): 데이터의 논리적인 제약 및 규칙
개념적 데이터 모델링
- E-R(객체-관계)다이어그램 - Peter Chen이 제안한 모델로, 현실 세계를 개체, 속성, 관계로 표현하며, 이를 시각화한 것
- 개체 (Entity)
- 현실 세계의 대상 (사람, 사물 등)
- 표기법: 사각형
- 속성 (Attribute)
- 개체나 관계가 갖는 고유한 특성
- 표기법: 타원
- 속성의 분류:
- 단일값/다중값 속성: 값이 하나인지(이름), 여러 개인지(취미 - 이중 타원)
- 단순/복합 속성: 의미를 분해할 수 없는지(이름), 있는지(입사일: 년/월/일)
- 유도 속성: 다른 속성값으로부터 계산되어 도출되는 속성 (예: 주민번호를 통한 나이)
- 널(Null) 속성: 값이 없거나 아직 모르는 상태를 허용하는 속성
- 키(Key) 속성: 각 개체를 유일하게 식별할 수 있는 속성 (밑줄로 표시)
- 관계 (Relationship)
- 개체 간의 의미 있는 연관성
- 표기법: 마름모
- 관계의 유형: 1:1, 1:N, N:M
- 약한 개체: 다른 개체(강한 개체)의 존재 여부에 의존적인 개체 (예: 사원과 부양가족, 이중 사각형 및 이중 마름모 표기)
- 개체 (Entity)
논리적 데이터 모델링
개념적 구조를 데이터베이스에 저장할 논리적 구조(주로 관계 데이터 모델)로 변환하는 과정입니다.
==Entitiy, 속성, 관계==를 구조적으로 정의하는 단계
특징: 정규화, 완전성, 독립성, 포용성성
구성 3요소: ==Entitiy, 속성, 관계==
모델 종류: 계층 데이터 모델(트리 형태), 네트워크 데이터 모델(그래프 형태), 관계 데이터 모델(2차원 테이블 형태)
관계 데이터 모델 기본 용어
릴레이션 (Relation): 2차원 테이블 (테이블)
튜플 (Tuple): 릴레이션의 행(Row)
애트리뷰트 (Attribute): 릴레이션의 열(Column)
도메인 (Domain): 하나의 속성이 가질 수 있는 모든 값의 집합 (예: 성별 - 남/여)
차수 (Degree): 속성(열)의 총 개수
카디널리티 (Cardinality): 튜플(행)의 총 개수
관계 데이터 연산 (관계 대수)
원하는 데이터를 얻기 위해 어떻게(How) 연산할지 절차적으로 명시하는 언어입니다. (※ 관계 해석은 무엇(What)을 원하는지 명시하는 비절차적 언어)
일반 집합 연산자: 합집합(∪), 교집합(∩), 차집합(-), 카티션 프로덕트(×)(두 릴레이션의 모든 튜플 조합)
순수 관계 연산자:
- Select (σ): 조건에 맞는 튜플(행) 반환
- Project (π): 지정된 속성(열) 반환
- Join (⋈): 공통 속성을 이용해 두 릴레이션을 연결
- Division (÷): 릴레이션 A에서 릴레이션 B의 조건에 맞는 튜플을 꺼낸 뒤 조건 속성을 제외하고 반환
키(Key)의 종류
- 슈퍼키: 유일성은 만족하나 최소성은 만족하지 않는 키의 집합
- 후보키: 유일성과 최소성을 모두 만족하는 키
- 기본키 (Primary Key): 후보키 중 선택된 메인 키
- 대체키 (Alternate Key): 기본키로 선택되지 못한 나머지 후보키
- 외래키 (Foreign Key): 다른 릴레이션의 기본키를 참조하는 속성
- 슈퍼키 > 후보티 > 기본키, 대체키 (포함관계로 생각)
무결성 제약 조건
- 개체 무결성: 기본키는 Null 값을 가질 수 없음
- 참조 무결성: 외래키는 참조할 수 없는 값을 가질 수 없음
이상 현상 (Anomaly) 및 정규화 (Normalization)
잘못된 설계로 인해 불필요한 ==데이터가 중복되어 발생하는 문제==입니다.
- 삽입 이상: 원치 않는 데이터까지 강제로 삽입해야 하는 현상
- 갱신 이상: 일부만 변경되어 데이터가 불일치하는 현상
- 삭제 이상: 삭제 시 유용한 정보까지 연쇄 삭제되는 현상
정규화: 관계형 데이터베이스 설계 시 중복을 최소하하여 데이터를 구조화하는 과정
-> ==데이터 중복 최소화 + 데이터 구조화==
정규화 단계:
- 제1정규화 (1NF): 모든 속성의 값이 원자값(단일값)을 갖도록 분해
- 제2정규화 (2NF): 부분 함수 종속성 제거 (완전 함수 종속)
- 제3정규화 (3NF): 이행 함수 종속성 제거 (X->Y, Y->Z 관계 분해)
- BCNF: 모든 결정자가 후보키가 되도록 분해
- 제4정규화 (4NF): 다치 종속(다중값 속성) 제거
- 제5정규화 (5NF): 조인 종속성 제거
물리적 데이터 모델링
논리적 구조를 특정 DBMS에 맞는 실제 저장소 구조(물리적 스키마)로 변환합니다.
- 특정 DBMS를 전제로 실행
물리 데이터 모델 설계 순서
- 엔티티(Entity) → 테이블(Table)로 변환 (영문명 지정)
- 속성(Attribute) → 컬럼(Column)으로 변환 (데이터 타입 지정)
- 주식별자/외래식별자 → 기본키(PK)/외래키(FK)로 지정
- 칼럼의 유형, 길이 정의
- 반정규화 수행
반정규화 (De-normalization)
정규화로 인해 릴레이션이 너무 많이 분해되어 수행 속도(성능)가 저하될 때, 시스템의 성능 향상을 위해 의도적으로 정규화 원칙을 위배하여 테이블을 통합/분할/추가하는 과정입니다.
물리 데이터 저장소 구성
- 제약조건 설계: 참조 무결성 등을 위해 제약조건 정의
- 인덱스(Index) 설계: 데이터 검색 속도 향상을 위한 색인 생성 (단, 잦은 수정/삭제 시 부하 발생 고려)
- 뷰(View) 설계: 기본 테이블을 기반으로 보안 및 편의를 위해 만드는 가상 테이블
- 클러스터(Cluster) 설계: 검색 효율을 높이기 위해 같이 ==자주 쓰이는 데이터를 물리적으로 같은 블록에 모아 저장==
- 파티션(Partition) 설계: 대용량 DB를 범위, 해시, 조합 등의 방식으로 분할하여 관리 용이성 및 성능 향상 도모
- 파티셔닝: 대용량의 테이블을 작은 논리적인 단위인 파티션으로 나누는 것
- 레인지 파티셔닝: 연속되는 숫자나 날짜 기준으로 파티셔닝
- 해시 파니셔닝: 파티션 키의 해시 함수 값으로 파티셔닝
- 리스트 파티셔닝: 범위 분할 이후 해시 함수를 적용하는 파티셔닝
- 장점: 성능 향상, 가용성 향상, 백업 가능
- 파티셔닝: 대용량의 테이블을 작은 논리적인 단위인 파티션으로 나누는 것
데이터 조작 프로시저
프로시저: SQL을 이용해 생성된 데이터를 조작하는 프로그램
CREATE OR REPLACE
(name IN VARCHAR)
IS BEGIN
옵티마이저: SQL을 가장 빠르고 효율적으로 수행할 수 있는 최적의 경로 생성
- 실행 계획: 최적의 처리 경로
- RBO: 규칙 기반
- CBO: 비용 기반
'정보처리기사' 카테고리의 다른 글
| [정보처리기사 실기] 서버 프로그램 구현 (0) | 2026.07.17 |
|---|---|
| [정보처리기사] 정보처리기사 필기 후기 및 실기 시험 준비 (0) | 2026.07.06 |