데이터모델data_model

Difference between r1.9 and the current

@@ -1,3 +1,4 @@
#noindex
// ''Moved from note.txt 'data_model' at [[Date(2022-04-21T10:16:52)]]''
// 2021-03-17 ; 슬라이드 중 Categories of Data Models (DMs)

@@ -42,6 +43,23 @@
diamond로(마름모, ◇) 표현된 것: relationship
타원으로(○) 표현된 것: attribute
}
 
----
'''data model'''의 구성요소 세 가지
 
[[개체entity]]
DB에 표현하려는 것.
개념이나 정보 단위 같은 현실 세계의 대상.
 
[[속성attribute]]
[[데이터data]]의 가장 작은 논리적 단위.
파일구조상의 데이터항목 또는 데이터필드에 해당.
 
[[관계relationship]]
[[개체entity]]간의 '''관계''' 또는
[[속성attribute]]간의 논리적 연결.
 
----
----
''이하 '''관계 데이터 모델'''만 다룸..''

@@ -61,11 +79,59 @@
데이터 모델 = 데이터 구조 + 제약조건 + 연산

데이터 모델의 종류:
* 계층적
* 네트워크형
* 관계형
* 객체지향형
* 계층형 - 계층적 - HDM, [[hierarchical_data_model]]
... rel. [[위계,hierarchy]], [[VG:트리,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
관계형을 기본으로 하고 객체데이터모델(객체지향형) 특성을 일부 반영한 절충형 모델.[* 변시우]
 
----
데이터모델의 구성요소 세 가지:
* [[데이터구조data_structure]]
* [[연산operation]]
* [[제약조건constraint]]

이것을 각각 관계형데이터모델(RDM, relational_data_model)에 적용하면:
* 데이터를 저장하는 기본 데이터구조 = [[릴레이션relation]]
* 릴레이션의 데이터를 처리하는 [[연산operation]] = [[관계대수relational_algebra]]
* 제약사항은 [[무결성제약조건integrity_constraint]]으로 명세
[* 변시우 4-3 from http://www.kocw.net/home/cview.do?cid=fc3d162212c224f5]
 
----
[[데이터추상화data_abstraction]]는 '''데이터모델'''을 통해 이루어진다.
{
''대충, 너무 하위의 복잡하고 자세한 것을 직접 다룰 일이 없도록 하는??'' (그냥내생각)
 
[[데이터모델data_model]]을 통해 달성할 수 있다(can be achieved).[* KU황인준 2022-03-21 11m]
데이터모델은 '''데이터추상화'''를 위해 이런 것들을 제공한다.
* A collection of concepts - DB의 구조를 서술하는 : [[데이터타입data_type]]s, [[관계relationship]]s, [[제약조건constraint]]s
* 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.
[* KU황인준 2022-04-04 5m 슬라이드 번역.]
 
----
Ref.
[[https://terms.naver.com/entry.naver?docId=2270450&ref=y&cid=51173&categoryId=51173 컴퓨터개론: 데이터 모델]]



// 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?

----