// Moved from note.txt 'data_model' at 2022-04-21
// 2021-03-17 ; 슬라이드 중 Categories of Data Models (DMs)
// 2021-03-17 ; 슬라이드 중 Categories of Data Models (DMs)
high-level DM (conceptual DM)
사용자가 data를 받아들이는(perceive) 개념에 가깝다.
entity, attribute, relationship에 기반한다.
low-level DM (physical DM)entity, attribute, relationship에 기반한다.
어떻게 data가 disk에 저장되는지. (storage에 dependent)
formats/orderings/access path(for computer specialist)
representational DM (implementation DM)formats/orderings/access path(for computer specialist)
위 두 극단 사이의 개념임. 다음 세 가지가 있다. 전통적인 DBMS에 쓰인다.
relational_data_model
hierarchical_data_model
network_data_model .... 이 셋 중 다른 건 거의 안 쓰이고 relational DM이 훨씬 많이 쓰인다
conceptual_data_modelrelational_data_model
hierarchical_data_model
network_data_model .... 이 셋 중 다른 건 거의 안 쓰이고 relational DM이 훨씬 많이 쓰인다
이것은 entity, relationship, attribute 에 기반한다.
(위에 나열된 것 중에)
개념데이터모델? conceptual_data_model
{
// from slide p8 'Conceptual DM'
다음 세 가지에 기반한다.
{
// from slide p8 'Conceptual DM'
다음 세 가지에 기반한다.
- 개체entity : DB에 설명된 실세계 객체(real-world object) 또는 개념(concept)을 표현한다.
Ex. employee, project
- 속성attribute : entity를 더 설명(further describe)하는 어떤 관심 대상 성질(property of interest)을 표현한다.
Ex. employee's name or salary
- 관계relationship : entities들 사이의 관계는, entities 사이의 상호작용(interaction)을 표현한다.
Ex. works_on : employee 그리고 project 사이의 관계
ER_data_model = entity-relationship_data_model
{
가장 인기 좋은 데이터모델이다. (popular high-level conceptual data model)
entity, attribute, relationship은 (위의) 개념데이터모델에서 그대로 가져왔다.
{
가장 인기 좋은 데이터모델이다. (popular high-level conceptual data model)
entity, attribute, relationship은 (위의) 개념데이터모델에서 그대로 가져왔다.
box으로(직사각형, □) 표현된 것: entity
diamond로(마름모, ◇) 표현된 것: relationship
타원으로(○) 표현된 것: attribute
}
diamond로(마름모, ◇) 표현된 것: relationship
타원으로(○) 표현된 것: attribute
}
data model의 구성요소 세 가지
이하 관계 데이터 모델만 다룸..
다음 세 가지로 구성.[1]
- 데이터 구조 (data structure)
- 연산 (operation) - See 연산operation
- 제약조건 (constraint)
데이터 모델의 종류:
- 계층형 - 계층적 - HDM, hierarchical_data_model
... rel. 위계,hierarchy, 트리,tree
일대다(1:n) 관계 처리에 유리
- 네트워크형 - NDM, network_data_model
다대다(m:n) 표현에 용이
- 관계형 - RDM, relational_data_model
가장중요한? 가장 널리 쓰이는?
rel. RDB, 릴레이션relation, 테이블table, 키key
연관된 데이터data 사이에 기본키primary_key 외래키foreign_key를 통해 논리적 관련성을 표현
릴레이션relation이라 불리는 2차원 테이블table 형태의 구조에 데이터data를 저장하는 방식.
=> 관계형모델relational_model
- 객체지향형 - OODM, object oriented data model
rel. object_orientedness or object_orientation
객체 단위의 저장 구조를 가짐
객체지향언어의 상속 캡슐화 등의 개념을 저장 개념에 도입
연관된 data 사이 관계를 ( 객체식별자 OID object identifier ) 로 표현하는 저장 방식
- 객체관계형 - ORDM, object relational data model
관계형을 기본으로 하고 객체데이터모델(객체지향형) 특성을 일부 반영한 절충형 모델.[2]
데이터모델의 구성요소 세 가지:
이것을 각각 관계형데이터모델(RDM, relational_data_model)에 적용하면:
이것을 각각 관계형데이터모델(RDM, relational_data_model)에 적용하면:
- 데이터를 저장하는 기본 데이터구조 = 릴레이션relation
- 릴레이션의 데이터를 처리하는 연산operation = 관계대수relational_algebra
- 제약사항은 무결성제약조건integrity_constraint으로 명세
데이터모델data_model을 통해 달성할 수 있다(can be achieved).[4]
데이터모델은 데이터추상화를 위해 이런 것들을 제공한다.
데이터모델은 데이터추상화를 위해 이런 것들을 제공한다.
- A collection of concepts - DB의 구조를 서술하는 : 데이터타입data_types, 관계relationships, 제약조건constraints
- A set of basic operations - retrievals와 updates를 지정하기 위한 : ex. insert, delete, update, select
- A set of valid user-defined operations - DB application의 동적인 aspect/behavior를 지정해주는 : ex. Compute_GPA
tmp; 관계형모델relational_model or relational_data_model? ¶
Relational Model Concepts
- Database : 릴레이션relation의 collection.
- 릴레이션relation : 값value들의 테이블table.
- 튜플tuple : 테이블table에서 행row.
- 속성attribute : 테이블table에서 열column header.
- 도메인domain : 속성attribute의 data_type.
Up: database
----
- [1] https://terms.naver.com/entry.naver?docId=3431158&cid=58430&categoryId=58430&expCategoryId=58430
- [2] 변시우
- [3] 변시우 4-3 from http://www.kocw.net/home/cview.do?cid=fc3d162212c224f5
- [4] KU황인준 2022-03-21 11m
- [5] KU황인준 2022-04-04 5m 슬라이드 번역.