데이터 모델: Difference between revisions
From IT Wiki
No edit summary |
No edit summary |
||
(10 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
[[분류:데이터베이스]][[분류:정보처리기사]] | [[분류:데이터베이스]][[분류:정보처리기사]] | ||
;Data Model | |||
;데이터의 관계, 접근과 그 흐름에 필요한 처리 과정에 관한 추상화된 모형 | |||
* 데이터 모델링: 주어진 개념으로부터 논리적인 데이터 모델을 구성하는 작업 | |||
== 구분 == | == 구분 == | ||
* 개념적 데이터 모델 | * '''개념적 데이터 모델''' | ||
** 현실세계에 대한 인식을 추상적인 개념으로 표현 | ** 현실세계에 대한 인식을 추상적인 개념으로 표현 | ||
** 인간이 이해할수 있는 정보 구조로 표현 | ** 인간이 이해할수 있는 정보 구조로 표현 | ||
** 대표적으로 개체-관계(E-R) 모델 | |||
* 논리적 데이터 모델 | * '''논리적 데이터 모델''' | ||
** 구현 모델이라고도 함 | |||
** 개념 데이터 모델링의 개념 구조를 컴퓨터가 이해할 수 있도록 변환한 구조 | ** 개념 데이터 모델링의 개념 구조를 컴퓨터가 이해할 수 있도록 변환한 구조 | ||
** 필드, 데이터타입 등으로 개념적 모델 구현 | ** 필드, 데이터타입 등으로 개념적 모델 구현 | ||
** 관계 모델, 계층 모델, 네트워크 모델 등으로 구분 | ** 관계 모델, 계층 모델, 네트워크 모델 등으로 구분 | ||
* '''물리적 모델''' | |||
** 성능과 직접적인 연관 | |||
** 하위수준의 데이터 모델로 데이터가 저장되는 방법을 표현 | |||
** 레코드형식, 레코드 순서, 접근경로, 저장방법에 관한 전문가가 정의 | |||
* '''[[자기 설명적 데이터 모델|Self-Describing 데이터 모델]]''' | |||
** 데이터와 메타데이터(데이터에 대한 정보)가 같은 구조 내에 저장되는 데이터 모델을 의미한다. | |||
** 데이터 자체가 구조에 대한 정보를 포함하고 있어, 별도의 외부 스키마가 없어도 데이터를 이해할 수 있다. | |||
== | == 구성 요소 == | ||
* 구조(Structure) | * '''구조(Structure)''' | ||
* 연산(Operation) | ** 데이터베이스에 표현될 대상으로서의 개체 타입과 개체 타입들간의 관계 | ||
* 제약조건(Constraint) | ** 데이터 구조 및 정적 성질 | ||
* '''연산(Operation)''' | |||
** 저장된 실제 데이터를 처리하는 방법 | |||
** 데이터를 조작하는 기본 도구 | |||
* '''제약조건(Constraint)''' | |||
** 저장될 수 있는 데이터의 논리적인 제약조건 | |||
== | == 표현 용어 == | ||
* 개체(Entity) | * '''개체(Entity)''' | ||
** 행, 튜플 | ** 행, 튜플 | ||
** 카디날리티( | ** '''카디날리티(Cardinality)''': 개체의 수 | ||
* 속성(Attribute) | * '''속성(Attribute)''' | ||
** 열, 필드 | ** 열, 필드 | ||
** 디그리(Degree): 속성의 수 | ** '''디그리(Degree)''': 속성의 수 | ||
* 관계(Relation) | * '''관계(Relation)''' | ||
== 종류 == | == 종류 == | ||
=== 관계형 데이터 모델 === | === 관계형 데이터 모델 === | ||
;상세 구현 모델은 [[관계형 데이터베이스]] 참조 | |||
* 표(Table)을 이용해 데이터 관계를 정의 | * 표(Table)을 이용해 데이터 관계를 정의 | ||
* 데이터간의 관계를 Key를 통해 구성 | * 데이터간의 관계를 Key를 통해 구성 | ||
Line 49: | Line 66: | ||
** 이러한 구조 때문에 '''Owner-Member 모델'''이라고도 한다. | ** 이러한 구조 때문에 '''Owner-Member 모델'''이라고도 한다. | ||
* 대표 DBMS: DBTG, EDBS, TOTAL | * 대표 DBMS: DBTG, EDBS, TOTAL | ||
== [[데이터 모델링]] == |
Latest revision as of 03:32, 17 October 2024
- Data Model
- 데이터의 관계, 접근과 그 흐름에 필요한 처리 과정에 관한 추상화된 모형
- 데이터 모델링: 주어진 개념으로부터 논리적인 데이터 모델을 구성하는 작업
구분[edit | edit source]
- 개념적 데이터 모델
- 현실세계에 대한 인식을 추상적인 개념으로 표현
- 인간이 이해할수 있는 정보 구조로 표현
- 대표적으로 개체-관계(E-R) 모델
- 논리적 데이터 모델
- 구현 모델이라고도 함
- 개념 데이터 모델링의 개념 구조를 컴퓨터가 이해할 수 있도록 변환한 구조
- 필드, 데이터타입 등으로 개념적 모델 구현
- 관계 모델, 계층 모델, 네트워크 모델 등으로 구분
- 물리적 모델
- 성능과 직접적인 연관
- 하위수준의 데이터 모델로 데이터가 저장되는 방법을 표현
- 레코드형식, 레코드 순서, 접근경로, 저장방법에 관한 전문가가 정의
- Self-Describing 데이터 모델
- 데이터와 메타데이터(데이터에 대한 정보)가 같은 구조 내에 저장되는 데이터 모델을 의미한다.
- 데이터 자체가 구조에 대한 정보를 포함하고 있어, 별도의 외부 스키마가 없어도 데이터를 이해할 수 있다.
구성 요소[edit | edit source]
- 구조(Structure)
- 데이터베이스에 표현될 대상으로서의 개체 타입과 개체 타입들간의 관계
- 데이터 구조 및 정적 성질
- 연산(Operation)
- 저장된 실제 데이터를 처리하는 방법
- 데이터를 조작하는 기본 도구
- 제약조건(Constraint)
- 저장될 수 있는 데이터의 논리적인 제약조건
표현 용어[edit | edit source]
- 개체(Entity)
- 행, 튜플
- 카디날리티(Cardinality): 개체의 수
- 속성(Attribute)
- 열, 필드
- 디그리(Degree): 속성의 수
- 관계(Relation)
종류[edit | edit source]
관계형 데이터 모델[edit | edit source]
- 상세 구현 모델은 관계형 데이터베이스 참조
- 표(Table)을 이용해 데이터 관계를 정의
- 데이터간의 관계를 Key를 통해 구성
- 1:1, 1:N, N:M 관계를 자유롭게 표현
- 간결하고 명확하고 상호변환성이 좋지만 성능이 떨어진다.
- 대표 DBMS: 오라클, MySQL, MsSQL, SQLite, 포스트그레
계층형 데이터 모델[edit | edit source]
- 트리 형태의 논리적 구조를 가지며, 개체는 트리의 노드로 표현
- 개체간의 관계를 링크로 표현되며 부모-자식 관계를 가짐
- 1:N 대응관계만 존재
- 레코드 삭제 시 연쇄 삭제(Triggered Delete)가 이루어짐
- 개체들 간 Cycle이 허용되지 않음
- 개체(Entity)를 세그먼트(Segment)라 지칭
- 대표 DBMS: IMS
네트워크형 데이터 모델[edit | edit source]
- 망형 모델, 그래프형 모델이라고도 불린다.
- CODASYL이 제안한 모델로, CODASYL 모델이라고도 한다.
- 대표적인 DBMS가 DBTG로, DBTG 모델이라고도 한다.
- 그래프를 이용해서 데이터 논리 구조를 표현
- 상하위 레코드는 N:M 대응 관계
- 상위 레코드를 Owner, 하위 레코드를 Member라 지칭
- 이러한 구조 때문에 Owner-Member 모델이라고도 한다.
- 대표 DBMS: DBTG, EDBS, TOTAL