#noindex // ''Moved from note.txt 'data_model' at [[Date(2022-04-21T10:16:52)]]'' // 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]]간의 논리적 연결. ---- ---- ''이하 '''관계 데이터 모델'''만 다룸..'' [[데이터data]] [[모델model]] 데이터 모델은 * [[database]]의 구조 * 그 구조에서 허용되는 [[연산operation]] * 구조와 연산에 대한 제약 조건 을 포함하는 개념. 다음 세 가지로 구성.[* https://terms.naver.com/entry.naver?docId=3431158&cid=58430&categoryId=58430&expCategoryId=58430] * 데이터 구조 (data structure) * 연산 (operation) - See [[연산operation]] * 제약조건 (constraint) 데이터 모델 = 데이터 구조 + 제약조건 + 연산 데이터 모델의 종류: * 계층형 - 계층적 - 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 컴퓨터개론: 데이터 모델]] Up: [[database]]