데이터모델링
#
Find similar titles
- 최초 작성자
- 최근 업데이트
Structured data
- Category
- Database
Table of Contents
데이터모델링 #
모델링(Modeling) #
Computer가 발전하게 되면서, 복잡하고 많은 계산과정으로 인해 기존에 풀지 못하던 여러 문제점들을 Computer의 빠른 연산 능력을 이용하여 해결할 수 있게 되었다. Computer Science에서 어떤 현실 세계의 문제 상황을 컴퓨터로 해결하기 위해 해당 문제에 영향을 미치는 여러 변수를 컴퓨터가 이해 가능한 형태로 변환한 것을 모델(Model)이라 하며, Computer 상에 모델을 설계하고 구현하는 과정을 모델링(Modeling)이라고 한다. 컴퓨터를 이용한 초창기 문제 해결 과정은 문제를 몇 가지 규칙으로 단순화하여 문제에 대한 모델을 구성하고, 규칙에 따라 문제를 해결하는 과정이었다(Rule-based System). 규칙 기반 시스템은 문제 해결 알고리즘이 규칙을 기반으로 하므로 규칙만 정의하고 나면 전체적인 모델링 과정이 비교적 간단하게 구성되었다. 하지만 Computer 및 Computer Science가 발전함에 따라 복잡한 문제(기계학습, 빅데이터 등)를 해결하기 위해서는 좀 더 구체적이고 복잡한 형태의 모델이 필요하게 되었으며, 시스템이 점점 복잡해지고 이에 따른 객체지향, 관계형 데이터베이스 등의 개념이 도입되면서 효과적인 모델링 방법이 Computer Science의 주요한 학문으로 자리 잡게 되었다.
데이터 모델링(Data modeling) #
데이터 모델링은 설계과정에서 시스템의 중요한 개념을 논리적인 데이터 모델을 구성하는 작업을 의미하며, 일반적으로 물리적인 데이터베이스 모델 구현, 시스템 데이터베이스 반영 과정을 포함한다. 데이터 모델링은 단순 데이터를 다루는 것 뿐만 아니라 시스템의 구체적인 Flow를 정의하는데도 매우 큰 영향을 미친다.
데이터 모델링 관련 지식 #
MVC 모델 #
MVC 는 Model, View, Controller의 약자이다. 하나의 애플리케이션과 프로젝트를 구성할 때 그 구성 요소를 각각의 3가지의 역할로 구분된 디자인 패턴이다.
MVC패턴 구성도 (출처)
모델, Model #
어플리케이션이 “무엇”을 할 것인지를 정의하는 것이며 데이터베이스, 처음 정의하는 상수, 초기화 값, 변수 등을 뜻한다. 또한, Model이란 문서화된 설명을 가지고 명확하게 정렬 혹은 정의된 그림으로 표현한 것을 말한다. 서로 다른 모델은 서로 다른 관점을 반영한다. ex) 경영자의 관점, 설계자의 관점, 계약자의 관점
Data Model #
Data model이란 업무 요구사항들을 나타내는 데이터 구조와 업무규칙에 관한 명세서다. 시각적으로 Data Model은 Entity-Relationship Diagram으로 표현된다.
IDEF1X Model #
1981년 미 공군에서 ICAM(Integrated Computer Aided Manufacturing)프로젝트의 생산 시스템 분석 및 설계 목적으로 개발된 IDEF 방법론 중에 시스템 내부의 데이터를 모델링 하는 기법이 IDEF1X다. J.Martin이 제창한 Information Engineering에서 사용된 기법으로 한국에서 가장 많이 사용하며 정보공학 방법론이라 부른다.
뷰, View #
화면에 무엇인가를 보여주기 위한 역할을 한다. 컨트롤러 하위에 종속되어, 모델이나 컨트롤러가 보여주려고 하는 모든 필요한 데이터 및 객체의 입력 화면의 출력을 담당한다. 또한, 클라이언트 측 기술인 html/css/javascript들을 모아둔 컨테이너라고 이해해도 된다.
컨트롤러, Controller #
모델이 “어떻게” 처리할지를 알려주는 역할을 할 것이고, 어플리케이션 화면의 로직처리 부분에서 사용자가 데이터를 클릭하고, 수정하는 것에 대한 "이벤트"들을 처리하는 기능을 뜻한다. 데이터를 View에 반영하여 사용자에게 알려주는 역할도 한다.
데이터 모델링 과정 #
데이터 모델링 과정은 기초모델링, 논리모델링, 물리모델링 3가지로 분류하여 순차적으로 데이터 모델링작업을 수행한다. 기초 모델링의 경우 일반적으로 논리 모델링과 병행하여 진행하는 경우가 많으며, 그로 인해 논리모델링, 물리모델링 2개의 모델링 과정으로 이야기하는 경우도 많다.
데이터 모델링 흐름 (출처)
데이터 기초 모델링 #
데이터 기초 모델링 은 데이터 개념 모델링 이라고도 불리며 시스템에 핵심엔티티를 추출하고 이를 모델링 하는 작업을 의미한다. 데이터 기초 모델링 과정은 경우에 따라 "데이터논리모델링 -> 개념화" 과정으로 분류하기도 하며, 데이터 기초 모델링은 전체 시스템의 골격을 잡고 구체적인 모델 상세화 작업을 시작하기 전 시스템의 큰 그림을 파악할 수 있는 모델링 과정이므로 해당 단계에서 정확한 핵심 엔티티들을 파악하는 것이 중요하다.
데이터 논리 모델링 #
데이터 논리 모델링은 기초 모델링 과정에서 핵심 엔티티들을 이용하여 구현된 기초 모델링을 "상세화" 하는 과정으로 데이터의 입력, 출력 과정들을 고려한 완성된 형태의 모델 구현 과정을 의미한다. 또한, 데이터베이스 설계 프로세스의 기초 설계 단계로써 비즈니스 정보의 구조와 규칙을 명확하게 표현할 수 있는 기법이다. E-R 다이어그램으로 표현된 개념적 구조를 데이터베이스에 저장할 형태로 표현한 논리적 구조이며 물리적인 스키마 설계의 전 단계의 데이터 모델 상태를 나타낸다.
Logical Model #
Logical Model은 업무를 지원하는 데 필요한 정보와 업무규칙을 표현하는 것을 말하여 DBMS와는 독립적으로 표현할 수 있다.
데이터 물리 모델링 #
물리 모델링은 논리 모델링 과정에서 완성된 데이터 모델을 실 DB에 맞게 적용하는 과정을 의미한다. 논리 모델명에서 작성된 데이터 타입들을 실제 데이터베이스에서 지원하는 타입에 맞게 변환하고, 데이터 관의 관계에서 구현되기 어려운 부분을 적절한 형태로 변환하는 과정을 말한다. 데이터 물리 모델링은 환경에 의한 차이를 제외한 전체 모델링 구조가 논리 모델링과 동일해야하며, 물리모델링 과정에서 논리모델링 과정에 없던 (DB환경으로 인해 생성되는 테이블이 아닌) 새로운 개념의 테이블이 생성되거나, 새로운 관계가 추가돼서는 안된다.
Physical Model #
Physical Model은 설계와 구축 사이에서 생성할 수 있는 데이터 구조다. DBMS에 의존적이며 SQL의 구성요소인 DDL로 구현된다. DBMS 성능 효과에 역점을 두어 모델링 해야 한다.
함수적 종속성과 정규화 #
X -> Y
"X에서 Y로 함수적 종속성이 있다."
X는 결정자(Determinant), Y는 종속자(Dependent)라고 부른다. 이 경우에 X에서 Y로 함수적 종속성이 존재한다고 말하거나 Y가 X에 함수적으로 종속된다고 말한다.
함수적 종속성 #
함수적 종속성(FD, Functional Dependency)이란 애트리뷰트들 간에 존재하는 제약조건을 표현한 것이다. 기본키에 해당하는 애트리뷰트(들)를 결정자, 나머지 애트리뷰트들을 종속자라 생각하면 기본키에 해당하는 애트리뷰트의 값이 정해지면 다른 애트리뷰트의 값은 기본키에 해당하는 값에 따라서 결정되는 것을 알 수 있다. 아래와 같이 학생 테이블을 가정한다면 학번은 기본키, [학번-> 이름], [학번-> 생년월일], [학번->주소], [학번-> 학과명] 등에 있는 함수족 종속성의 결정자가 된다.
학번 | 이름 | 생년월일 | 주소 | 학과명 |
---|---|---|---|---|
200415001 | 김영구 | 1985년 6월 1일 | 서울 | 컴퓨터공학과 |
200415002 | 홍길동 | 1985년 4월 12일 | 서울 | 컴퓨터공학과 |
200415003 | 임걱정 | 1985년 12월 25일 | 인천 | 컴퓨터공학과 |
- 만약 X가 관계형 스키마 R의 기본키 또는 후보키이면 해당 투플의 어떤 부분집합 Y에 대해서도 X-> Y가 성립한다.
- 관계형 스키마 R에서 X-> Y가 성립하더라도 Y-> X가 성립되는 것은 아니다.
추론 규칙 #
다음과 같이 학과와 학생 테이블에는 함수적 종속성이 명백하게 존재하고, 이런 모든 함수적 종속의 집합을 F라고 한다고 하자.
학생
학번 | 이름 | 생년월일 | 주소 | 학과명 |
---|---|---|---|---|
200415001 | 김영구 | 1985년 6월 1일 | 서울 | 컴퓨터공학과 |
200415002 | 홍길동 | 1985년 4월 12일 | 서울 | 컴퓨터공학과 |
200415003 | 임걱정 | 1985년 12월 25일 | 인천 | 컴퓨터공학과 |
학과
학과명 | 사무실위치 | 전화번호 | ||
---|---|---|---|---|
컴퓨터공학과 | E동 3층 | 031-8041-0510 | ||
게임공학과 | E동 3층 | 031-8041-0550 |
F = [학번 ->[이름, 생년월일, 주소, 학과명], 학과명 ->[사무실위치, 전화번호]]
이런 집합 F에 속한 것이 함수적 종속성인지 아닌지를 다음과 같이 추론해 볼 수 있다.
학번 -> [사무실위치, 전화번호]
학번 -> [이름]
학과명 -> [사무실 위치]등등
이렇게 다른 함수적 종속성을 추론하는 과정은 이미 아는 함수적 종속성에 추론 규칙을 차례로 적용함으로써 이루어진다. 추론 규칙이란 무엇인지 알아보자.
암스트롱의 추론 규칙(Armstrong's Inference Rule)을 사용하면 함수족 종속성이 같은 것인지를 알 수 있다. 이 추론 규칙은 다음과 같다.
규칙 1(재귀성(Reflexive) 규칙) X ⊇ Y 이면 X -> Y 이다.
규칙 2(부가성(Augmentation) 규칙) X -> Y 이면 XZ -> YZ 이다.
규칙 3(이행성(TRANSITIVE) 규칙) X -> Y 이고, Y -> Z 이면 X -> Z 이다.
규칙 4(분해(Decomposition) 규칙) X -> YZ 이면 X -> Y 이다.
규칙 5(합집합(Union) 규칙) X -> Y 이고 X -> Z 이면 X -> YZ 이다.
규칙 6(의사 이행성(Pseudo-transitivie) 규칙) X -> Y 이고 WY -> Z이면 WX -> Z 이다.
Incoming Links #
Related Data Sciences (DataScience 0) #
Suggested Pages #
- 0.631 삭제요청
- 0.178 Substitution matrix
- 0.075 phage display technology
- 0.041 Seongsu
- 0.025 bacteriophage
- 0.020 pcr
- 0.016 question test1
- 0.005 About
- 0.003 바이오잉크
- 0.003 SASS
- More suggestions...