데이터모델data_model

// Moved from note.txt 'data_model' at 2022-04-21
// 2021-03-17 ; 슬라이드 중 Categories of Data Models (DMs)

high-level DM (conceptual DM)
사용자가 data를 받아들이는(perceive) 개념에 가깝다.
entity, attribute, relationship에 기반한다.

low-level DM (physical DM)
어떻게 data가 disk에 저장되는지. (storage에 dependent)
formats/orderings/access path(for computer specialist)

representational DM (implementation DM)
위 두 극단 사이의 개념임. 다음 세 가지가 있다. 전통적인 DBMS에 쓰인다.
relational_data_model
hierarchical_data_model
network_data_model .... 이 셋 중 다른 건 거의 안 쓰이고 relational DM이 훨씬 많이 쓰인다

conceptual_data_model
이것은 entity, relationship, attribute 에 기반한다.


(위에 나열된 것 중에)

개념데이터모델? conceptual_data_model
{
// 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은 (위의) 개념데이터모델에서 그대로 가져왔다.

box으로(직사각형, □) 표현된 것: entity
diamond로(마름모, ◇) 표현된 것: relationship
타원으로(○) 표현된 것: attribute
}


data model의 구성요소 세 가지

개체entity
DB에 표현하려는 것.
개념이나 정보 단위 같은 현실 세계의 대상.

속성attribute
데이터data의 가장 작은 논리적 단위.
파일구조상의 데이터항목 또는 데이터필드에 해당.

관계relationship
개체entity간의 관계 또는
속성attribute간의 논리적 연결.



이하 관계 데이터 모델만 다룸..


데이터 모델은
을 포함하는 개념.

다음 세 가지로 구성.[1]
  • 데이터 구조 (data structure)
  • 연산 (operation) - See 연산operation
  • 제약조건 (constraint)

데이터 모델 = 데이터 구조 + 제약조건 + 연산

데이터 모델의 종류:

데이터모델의 구성요소 세 가지:
이것을 각각 관계형데이터모델(RDM, relational_data_model)에 적용하면:
[3]


데이터추상화data_abstraction데이터모델을 통해 이루어진다.
{
대충, 너무 하위의 복잡하고 자세한 것을 직접 다룰 일이 없도록 하는?? (그냥내생각)

데이터모델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?

----