데이터베이스 설계는 논리 모델과 물리 모델 두 가지 관점에서 이루어집니다. 이 두 모델은 같은 데이터를 다루지만, 접근 방식과 초점이 다릅니다. 이 글에서는 논리 모델과 물리 모델의 개념을 구분하고, 테이블, 행(Row), 열(Column)을 논리적 관점에서 개체타입(Entity Type), 개체(Entity), 속성(Attribute)로 어떻게 대응시키는지 설명하겠습니다.
논리 모델과 물리 모델
논리 모델(Logical Model)
-
정의: 데이터의 구조와 관계를 추상화하여 표현한 모델.
-
특징:
-
현실 세계의 데이터를 개념적으로 표현합니다.
-
데이터의 구조, 속성, 제약 조건에 초점을 둡니다.
-
독립적으로 설계되어 데이터가 어떻게 저장되는지(물리적 구조)에 의존하지 않습니다.
-
-
사용 목적:
-
데이터베이스 설계 초기에 데이터의 논리적 구조를 정의합니다.
-
개체(Entity), 속성(Attribute), 관계(Relationship)을 정의합니다.
-
물리 모델(Physical Model)
-
정의: 데이터를 저장하고 처리하기 위한 물리적 구조를 나타낸 모델.
-
특징:
-
실제 데이터가 저장되는 방식에 초점을 둡니다.
-
데이터베이스 테이블, 열(Column), 행(Row), 인덱스와 같은 요소를 정의합니다.
-
특정 데이터베이스 시스템(MySQL, PostgreSQL 등)의 구현 세부 사항을 포함합니다.
-
-
사용 목적:
-
데이터를 효율적으로 저장하고 검색하기 위한 구체적인 구현을 설계합니다.
-
비교 항목 | 논리 모델 | 물리 모델 |
---|---|---|
초점 | 데이터의 구조와 관계 | 데이터의 저장 및 접근 방식 |
구성 요소 | 개체(Entity), 속성(Attribute), 관계(Relationship) | 테이블(Table), 열(Column), 행(Row) |
독립성 | 물리적 구현에 독립적 | 특정 데이터베이스 시스템에 종속적 |
물리 모델과 논리 모델의 대응 관계
관계형 데이터베이스에서는 물리 모델과 논리 모델이 다음과 같이 대응됩니다:
물리 모델 | 논리 모델 |
테이블(Table) | 개체타입(Entity Type) |
행(Row) | 개체(Entity) |
열(Column) | 속성(Attribute) |
세부 설명
-
테이블(Table) → 개체타입(Entity Type)
-
테이블은 데이터가 저장되는 물리적 구조입니다.
-
논리적으로는 특정 유형의 데이터를 정의하는 **개체타입(Entity Type)**에 해당합니다.
-
예:
학생(Student)
테이블은 학생 데이터를 저장하며, 이는 학생 개체타입에 해당합니다.
-
-
행(Row) → 개체(Entity)
-
테이블의 각 행은 하나의 데이터를 나타내며, 논리적으로는 **개체(Entity)**를 의미합니다.
-
예: 학번
2023001
, 이름홍길동
, 전공컴퓨터공학
은 학생 개체를 표현합니다.
-
-
열(Column) → 속성(Attribute)
-
테이블의 각 열은 데이터를 저장하는 필드로, 논리적으로는 **속성(Attribute)**을 나타냅니다.
-
예:
학번
,이름
,전공
은 학생 개체의 속성입니다.
-
논리 모델과 물리 모델의 대응
물리 모델: 학생 테이블
학번(Student_ID) | 이름(Name) | 전공(Major) |
2023001 | 홍길동 | 컴퓨터공학 |
2023002 | 김영희 | 전자공학 |
2023003 | 이철수 | 기계공학 |
논리 모델
-
개체타입(Entity Type):
학생(Student)
-
속성(Attribute)
-
학번(Student_ID)
-
이름(Name)
-
전공(Major)
-
-
-
개체(Entity)
-
개체 1: 학번
2023001
, 이름홍길동
, 전공컴퓨터공학
-
개체 2: 학번
2023002
, 이름김영희
, 전공전자공학
-
개체 3: 학번
2023003
, 이름이철수
, 전공기계공학
-
논리 모델과 물리 모델의 설계 흐름
-
논리 모델 설계
-
현실 세계의 데이터를 추상화하여 개체, 속성, 관계를 정의합니다.
-
예:
학생
이라는 개체타입을 정의하고,학번
,이름
,전공
을 속성으로 추가.
-
-
물리 모델 설계:
-
논리 모델을 기반으로 실제 데이터베이스 테이블을 설계합니다.
-
예:
학생
개체타입을 테이블로 구현하고,학번
,이름
,전공
을 테이블의 열(Column)로 정의.
-
-
구현:
-
설계된 물리 모델을 데이터베이스 시스템(MySQL, PostgreSQL 등)에 적용하여 실제 데이터를 저장하고 관리합니다.
-
정리
-
논리 모델은 현실 세계 데이터를 추상적으로 정의하며, 물리 모델은 이를 데이터베이스에 저장하기 위한 구조로 변환합니다.
-
테이블, 행, 열과 같은 물리적 개념은 각각 개체타입, 개체, 속성과 대응됩니다.
-
논리 모델과 물리 모델을 명확히 이해하면 데이터베이스 설계와 구현을 효율적으로 수행할 수 있습니다.
[…] 논리 모델과 물리 모델 […]
[…] 논리 모델과 물리 모델 […]