Developer's Development

3.1.9 [DB] 데이터 모델링 본문

프로그래밍과 데이터 기초/DB

3.1.9 [DB] 데이터 모델링

mylee 2025. 7. 7. 19:34
데이터 모델링

 

각 데이터들의 종류와 데이터 테이블 간의 관계를 확인하기 위해 필요한 과정

관계형 데이터 베이스 저장 절차 : 요구사항 분석 👉🏻 프로그램 설계 👉🏻 프로그램 구현 👉🏻 통합/테스트 👉🏻 유지보수

 

 

데이터 모델 표기법

 

 

엔터티 (Entity)

 

업무의 관심 대상이 되는 정보를 갖고 있거나 그에 대한 정보를 알아야 하는 유, 무형의 사물(개체)를 의미한다.

 

  • 속성(Attribute) 종류

분해 여부에 따른 속성의 종류

- 단일 속성 : 하나의 의미로 구성된 속성 (ex. 부서명, 상품명)

- 복합 속성 : 두 개 이상의 세부 속성으로 구성된 속성 (ex. 전화번호, 주소)

- 다가 속성(다중값 속성) : 속성에 여러 값을 지니고 있는 속성 (ex. 주문 내역)

 

특성에 따른 속성의 종류

- 기초 속성 : 엔터티의 본질을 설명하는 속성

- 관계 속성 : 타 엔터티와의 연관성을 나타내는 속성

- 추출 속성 : 원본 속성의 값을 연산해서 채울 수 있는 속성

 

 

식별자 (Identifier)

 

 

  • 주식별자 (Primary Identifier)

엔터티에 소속된 인스턴스를 구별하는 기준 역할을 하는 속성이며, 주식별자는 유일성, 최소성, 불변성, 존재성의 특징을 갖는다.

주식별자는 하나가 아닌 여러 속성일 수 있다. (복합키)

 

  • 외래식별자 (Foreign Identifier)

관계가 있는 두 엔터티를 부모, 자식 엔터티로 구분한 후 부모의 주식별자와 공통 속성이 자식에게도 존재하면 해당 속성을 외래식별자로 지정한다.

 

 

관계 (Relationship)

 

두 개 이상의 엔터티 간에 존재하는 연관성을 나타내며, 하위(자식) 엔터티의 속성으로 관리될 때만 관계를 표현한다.

 

  • 카디널리티 : 릴레이션에서 튜플의 개수이자 상위 엔터티의 인스턴스 하나가 하위 엔터티의 인스턴스 몇개와 관련이 있는지 혹은 그 반대를 나타내는 것이다.
  • 옵셔널리티 : 상위 엔터티와 하위 엔터티가 서로 연관되는 값이 반드시 존재해야 하는지 존재하지 않아도 되는지를 의미한다.
  • 관계 디그리 : 하나의 관계에 포함된 엔터티의 개수를 뜻한다.

 

특별한 관계의 종류

  • 일대일 관계 : 상위 엔터티의 하나의 인스턴스가 하위 엔터티의 하나의 인스턴스와 연관되는 관계
  • 베타 관계 : 두 개 이상의 상위 엔터티와 관계를 가지며, 상호 배타적(하위 엔터티의 하나의 인스턴스가 한번에 하나의 부모 엔터티와 관계를 가지게 됨)일 때의 관계
  • 재귀 관계 : 하나의 엔터티에서 인스턴스가 같은 엔터티의 다른 인스턴스와 관계를 가진다.

 

 

이상 (Anomaly)

 

중복된 데이터 때문에 데이터에 의도하지 않은 현상이 발생되면, 이를 이상 현상이라고 한다.

  • 삽입 이상 : 릴레이션에서 새로운 인스턴스를 삽입할 때 발생
  • 갱신 이상 : 릴레이션에서 속성의 값을 업데이트할 때 발생 
  • 삭제 이상 : 릴레이션에서 인스턴스를 삭제할 때 발생

 

논리 모델

 

개념 모델을 상세화하는 작업으로, 전체 속성을 도출하고 도출되지 않은 대부분의 엔터티들과 관계들을 도출하는 단계이다.

정규화를 진행하는 단계이다.

 

 

정규화 (Normalization)

 

목적 : 중복 데이터를 제거하여 안정성과 확장성을 도모한다.

함수 종속 : 릴레이션 내에 존재하는 속성 간의 종속성을 의미한다.

 

 

 

'프로그래밍과 데이터 기초 > DB' 카테고리의 다른 글

3.1.13 [Python] MySQL 연동  (0) 2025.07.08
3.1.12 [DB] JOIN, SUBQUERY  (1) 2025.07.08
3.1.11 [DB] DML  (0) 2025.07.08
3.1.10 [DB] SELECT  (1) 2025.07.08
3.1.8 [DB] 데이터베이스  (2) 2025.07.06