IT - Introduction to Computer Science

[IT지식] Data Models란?

개발자하소서 2023. 9. 7. 16:23
728x90
반응형
SMALL

 

📌Data Models란? 


- DB의 구조(Structure)를 기술하는데 사용될 수 있는 개념들이 모인 집합

- DB 구조*추상화해서 표현할 수 있는 수단을 제공한다.

- Data Model은 여러 종류가 있으며 추상화 수준과 DB구조화 방식이 조금씩 다르다. 

- DB에서 읽고 쓰기 위한 기본적인 동작들(Options)도 포함한다. 

   * DB구조란? : 데이터 유형, 데이터 관계, 제약 사항 등등..

 

 

이러한 데이터 모델을 분류

 

즉, 카테고리라이징을 할 수 있는데 

 

아래와 같이 크게 세가지로 분류할 수 있다. 

 

 

📌Data Models 분류


- Conceptual (or high - level ) data models 


- logical (or representational) data models 


- physical (or low-level) data models 


 

 

차례대로 각 카테고리를 살펴보면 

 

먼저 Conceptual data models 개념은 

 

아래와 같다.

 

 

📌Conceptual data models

- 일반 사용자들이 게 이해할 수 있는 개념들로 이루어진 모델 

- 추상화 수준이 가장 높음 

- 비즈니스 요구사항을 추상화하여 기술할 때 사용함 

 

 

Conceptual data model의 대표적으로

 

entity relationship model이 있다.  

 

즉 데이터베이스의 구조를 entity와 그 entity들 간의 관계로 모델링을 하는 것이다. 

 

아래의 그림은 ER Diagram 이라고 해서

 

(여기서 E와 R은 Entity의 E와 Relationship의 R을 의미하는 것이다.)

 

entity와 그 entity들 간의 관계를 다이어그램으로 표현한 것이다. 

 

ER Diagram

 

위의 그림에 대해 조금 더 부가설명을 하자면,

 

예를 들어 대학교에 있는 도서관 시스템을 구현한다고 가정했을때 

 

학생들 정보와 책 정보를 다이어그램 형식으로 표현한 것이다. 

 

그럼 Student 와 Book은 각각의 entity가 될 것이고, 

 

이들의 관계는 학생이 책을 빌려서  '읽는 것' 이기에 

 

reads의 관계가 되는 것이다. 

 

그리고 각각의 entity마다 속성들이 있는데 이를 attribute라고 하는데, 

 

위와 같이 student 같은 경우에는  

 

student id가 존재하며, major(전공)이나, name(이름), grade(학년) 등이 

 

있을 수가 있는데 이렇게 entity의 속성 하나하나를 attribute 라고 부르는 것이다. 

 

따라서서, Conceptual data model은 이런식으로 데이터베이스의 구조를 

 

높은 수준으로 추상화하여 누가봐도 이해하기 쉽도록 표현하는 것.

 

혹은 그렇게 표현할 수 있는 수단을 제공하는 모델이라고 이해하면 된다. 

 

 

 

다음으로는 

 

Logical data models의 개념은 아래와 같다. 

 

📌 Logical data models

- 이해하기 어렵지 않으면서도 디테일하게 DB를 구조화 할 수 있는 개념들을 제공 

- 데이터가 컴퓨터에 저장될 때의 구조와 크게 다르지 않게 DB 구조화를 가능하게 함 

- 특정 DBMS나 Storage에 종속되지 않는 수준에서 DB를 구조화할 수 있는 모델 

 

보통 백엔드 개발자는 이 logical data model을 많이 사용하게 되는데, 

 

그 중에서도 가장 많이 사용하게 되는 것은 

 

바로 relational data model 이다. 

 

여기서 relation이라 함은 

 

아래와 같은 table을 의미하는 것이다. 

 

 

일반적으로 table에는 row가 있고, 또 column 이 존재하는데, 

 

 

 

이 relational data model에서는 똑같이 데이터를 

 

table형태로 저장하게 되고 이 table을 relation이라고 부른다. 

 

그래서 테이블의 row는 데이터 각각을 의미하게 되며 

 

column은 테이블의 속성, 즉 attribute를 의미하게 되는 것이다. 

 

 

 

그리고 이러한 relational 모델 말고도 logical data model에는 

 

여러 종류가 있는데, 살펴보자면 아래와 같다. 

 

 

📌 Logical data models 종류


- relational data model 


- object data model


- object-relational data model 

 

여기서  object data model은 객체 개념을 사용해서 데이터베이스를 모델링하는 것을 의미하며,

 

relational 모델과  object 모델  이 두개의 모델을 합쳐서  모델링 된

 

object-relational 데이터 모델이 존재한다. 

 

그 외에도 여러가지 데이터 모델이 존재하지만, 

 

가장 많이 사용되는 것은 relational data model이며, 

 

앞서 살펴보았던 유명한 데이터 베이스 management system들도 

 

대부분 relational data model에 기반한 DBMS라고 보면 된다. 

 

그래서 오라클, MYSQL, SQL Server 모두 relational data model 이며, 

 

postgreSQL같은 경우는 Object relational data model 인데, 

 

이것 또한 relational 모델을 포함하고 있기에 

 

유명한 DBMS는 모두 Relational data model 에 기반하고 있다고 보면 된다. 

 

즉, 그만큼 이 모델이 많이 상용화되고 있다는 것이다. 

 

 

 

마지막으로 

 

 physical data models 의 개념은 아래와 같다. 

 

📌 Physical data models


- 컴퓨터에 데이터가 어떻게 파일 형태로 저장되는 지를 기술할 수 있는 수단을 제공 


- 즉, 데이터가 실제로 저장 장치에 저장되는 형태에 관 가장 근접하게 데이터베이스 구조를 표현할 수 있는 모델이다. 


- data format, data ordering, access path 등등 


- access path란?  :  데이터 검색을 빠르게 하기 위한 구조체 (ex) index  

 

이렇게 DATA model 에 대해 살펴보았다. 

 

다음에는 이 개념을 바탕으로 데이터베이스의 스키마가 무엇인지.

 

데이터베이스의 state는 무엇을 의미하는 지 알아보도록 하자

 

 

 

📌해당 글은 '쉬운코드' 유튜브영상을 보고 작성하였습니다.

 
728x90
반응형
LIST