데이터 모델(Data Model)
개념
현실세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델
데이터 모델 표시요소
연산(Operation)
데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세, 관계연산(SELECT, PROJECT, JOIN, DIVISION)
구조(Structure)
데이터베이스에 논리적으로 표현될 대상으로서의 개체타입과 그 관계, 데이터 구조 및 정적 성질을 표현하는 요소
제약조건(Constraint)
데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건, 데이터 무결성 유지 방법, 특정칼럼에 설정하는 제약(개체무결성, 참조무결성 등)
=> 데이터 모델에서는 연산을 이용하여 실제 데이터를 처리하는 작업에 대한 명세를 나타내는데 논리 데이터 모델에서는 구조를 어떻게 나타낼것인지 표현한다.
제약 조건은 데이터 무결성 유지를 위한 DB의 보편적 방법으로 릴레이션의 특정 칼럼에 설정하는 제약을 의미하며, 개체 무결성과 참조 무결성 등이 있다.
데이터 모델 절차
1. 요구사항분석
2. 개념적 설계 : 개념적 데이터 모델, 트랜잭션 모델링, 개체관계 다이어그램(ERD)
현실세계에 대한 인식을 추상적, 개념적으로 표현하여 개념적 구조를 도출하는 과정으로 주요산출물에는 E-RD가 있다.
3. 논리적 설계 : 논리적 데이터 모델, 트랜잭션의 인터페이스 설계, 논리적 스키마 설계, 정규화수행
목표 DBMS에 맞는 스키마 설계, 트랜잭션 인터페이스를 설계하는 정규화 과정을 수행한다.
4. 물리적 설계 : 물리적 데이터 모델, 물리적 스키마, 객체생성, 응답시간, 저장공간의 효율화, 트랜잭션처리 고려 설계,
반정규화
특정 DBMS의 특성 및 성능을 고려하여 데이터베이스 저장구조로 변환하는 과정으로 결과로 나오는 명세서는 테이블
정의서 등이 있다.
논리 데이터 모델링
개념
업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현하는 프로세스
논리적 데이터 모델링의 종류
관계 데이터 모델 : 논리적 구조가 2차원 테이블 형태로 구성, 기본키와 외래키로 관계 표현
계층 데이터 모델 : 논리적 구조가 트리형태로 구성, 상하관계(부모-자식개체)만 존재, 일대다 관계만 허용
네트워크 데이터 모델 / CODASYL DBTG 모델 : 논리적 구조가 그래프 형태로 구성, 다대다관계 만족
논리 데이터 모델링 속성
개체(Entity) : 사물 또는 사건, 개체
속성(Attribute) : 개체가 가지고 있는 요소 또는 성질
관계(Relationship) : 두 개체관의 관계를 정의
개체-관계 모델(E-R Model)
개념 : 현실 세계에 존재하는 데이터와 그들간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해 사용
개체, 속성, 관계로 기술한 모델
기호
□ : 개체, 개체집합을 나타낸다.
◇ : 관계, 관계집합을 나타낸다.
○ : 속성, 개체 집합의 단일속성을 나타낸다.
◎ : 다중값속성을 나타낸다.
실선 : 관계, 속성 연결, 개체집합과 속성을 이어준다.
실선 : 개체집합과 관계집합을 이어준다.
--- 점선 : 관계집합과 속성을 이어준다.
관계 데이터 모델(Relation Data Model)
개념
데이터를 행과 열로 구성한 2차원 테이블 형태로 구성한 모델, E.F.Codd박사가 제안
구성요소
릴레이션(Relation) : 행과 열로 구성된 테이블
튜플(Tuple) : 릴레이션의 행 Row
속성(Attribute) : 릴레이션의 열 Column
카디널리티(Cardinality) : 튜플의 수, 행의 갯수
차수(Degree) : 속성의 수, 열의 갯수
스키마(Schema) : 데이터베이스의 구조
인스턴스(Instance) : 실제 저장된 데이터의 집합
관계대수
개념 : 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절자적 정형언어
연산자의 종류
일반집합연산자 : 수학의 집합 개념을 릴레이션에 적용한 연산자
합집합(Union) : R∪S, R과 S의 전체
교집합(Intersection) : R ∩ S, R과 S의 중복
차집합(Difference) : R - S, R에만 존재
카티션 프로덕트(CARTESIAN Product) : R X S, R과 S에 속한 모든 튜플을 연결해 만든 새로운 튜플로 릴레이션 구성
순수관계연산자 : 관계 데이터베이스에 적용할 수 있도록 특별히 개발한 관계 연산자
셀렉트(Select) : σ, 조건을 만족하는 튜플 반환
프로젝트(Project) : π, 주어진 속성들의 값으로 구성된 튜플 반환
조인(Join) : R ⋈ S, 공통속성을 이용해 R과 S의 튜플들을 연결해 만들어진 튜플 반환
디비전(Division) : R ÷ S, 릴레이션 S의 모든튜플과 관련 있는 R의 튜플반환
관계해석(Relational Calculus)
개념 : Codd 박사에 의하여 제시되었으며, 튜플관계 해석과 도메인 관계 해석을 하는 비절차적 언어
특징 : 프레디킷 해석에 기반한 언어, 비절차적 언어
관계대수와 관계해석 비교
구분 | 관계대수 | 관계해석 |
특징 | 절차적언어 | 비절차적언어 |
목적 | 어떻게 유도하는가? how | 무엇을 얻을 것인가? what |
종류 | 순수관계연산자, 일반집합연산자 | 튜플관계해석, 도메인 관계해석 |
정규화(Normalization)
개념 : 관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상을 방지, 데이터의 일관성과 정확성 유지, 무손실 분해과정
이상현상(Anomaly)
개념 : 데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상
삽입이상 : 정보 저장 시 해당 정보의 불필요한 세부정보를 입력해야 하는 경우
삭제이상 : 정보 삭제 시 원치 않는 다른 정보가 같이 삭제되는 경우
갱신이상 : 중복 데이터 중에서 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우
정규화 단계
1정규형 : 원자값으로 구성
2정규형 : 부분함수 종속 제거(완전 함수적 종속 관계)
3정규형 : 이행함수 종속 제거
보이스-코드 정규형(BCNF) : 결정자 후보 키가 아닌 함수 종속 제거
4정규형 : 다치(다중 값) 종속제거
5정규형 : 조인 종속 제거
함수종속
개념 : 릴레이션에서 속성의 의미와 속성 간 상호 관계로부터 발생하는 제약조건
결정자 / 종속자
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가 성립되는 경우
반정규화(De-Normalization) / 비정규화 / 역정규화
개념 : 정규화된 개체(엔터티), 속성, 관계에 대해 성능향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법
특징 : 성능향상, 관리의 효율성 증가, 데이터의 일관성 및 정합성 저하, 유지를 위한 비용 별도 발생, 성능에 안 좋은 영향
기법
테이블 : 테이블병합, 테이블 분할(수평분할, 수직분할), 중복테이블 추가(집계테이블 추가, 진행테이블 추가, 특정 부분만을 포함하는 테이블 추가)
컬럼 : 컬럼 중복화
관계 : 중복 관계 추가
데이터 모델 표시요소, 절차, 개체-관계모델 기호, 관계 데이터 모델 구성요소, 관계대수, 관계해석, 정규화, 이상현상, 함수종속 종류, 반정규화 시험문제 출제!
'정보처리기사' 카테고리의 다른 글
3. 데이터 베이스 기초 활용하기(★★★) (0) | 2023.06.28 |
---|---|
3. 물리 데이터 저장소 설계(★) (0) | 2023.06.27 |
패키지 다이어그램(Package Diagram) (0) | 2023.06.20 |
클래스 다이어그램(Class Diagram) (0) | 2023.06.20 |
정보처리기사 실기용어(데이터 입출력 구현) (0) | 2023.06.20 |