본문 바로가기
백엔드/SQL

데이터베이스 설계와 개체-관계 모델

by dustnn 2025. 5. 27.
데이터베이스 애플리케이션 개발 프로젝트 진행 과정

 

데이터베이스 설계(데이터 모델링)

 

- 데이터 모델링: 현실 세계의 데이터를 데이터베이스에 효과적으로 저장하고 관리할 수 있도록 현실 세계를 추상화하고 체계적으로 구조화하는 과정

- 데이터 모델: 데이터 모델링, 즉 데이터베이스 설계를 위한 도구(방법론)

-> 데이터 추상화 및 구조화하는 방법론

-> 저장될 데이터의 구조, 관계, 의미, 제약조건 등에 대한 명세

- 데이터 모델링의 시각화 산출물: E-R 다이어그램, 스키마 다이어그램

 

데이터베이스 구축

1. 스키마 생성(create.sql)

2. 초기 데이터 삽입(insert.sql)

 

 

데이터베이스 설계와 개체-관계 모델

 

개념적 모델 단계에 해당한다.

개체-관계 모델: 개념적 데이터 모델링 도구(개념적 설계를 위한 데이터 모델)

 

개체-관계 모델의 구성 요소
구성 요소 설명 데이터베이스에서의 구현 예시
Entity
개체
- 업무 상 관리가 필요한 어떤 것
- 데이터베이스에 저장할 어떤 것
- 인스턴스의 집합
테이블 스키마
(인스턴스: 테이블 투플)
- 엔터티: 과목
- 인스턴스: 수학, 영어
Attribute
속성
- 그 어떤 것이 갖는 성격
-> PK 속성, FK 속성, 일반속성
테이블 컬럼 과목 ID, 과목명, 개설학과 ID, 학점
Relationship
관계
그 어떤 것들 간 관계 1:1 외래키 한쪽 테이블에 외래키 설정 사용자-프로필
1:N N쪽 테이블에 외래키 설정 학과-소속교수
N:N 관계 테이블 따로 생성 후, 각 테이블에 외래키 설정 학생-수강과목

 

개체/속성/관계 시각화

 

<IE 표기법>

보통 IE 표기법을 쓴다. IE 표기법은 추상화 수준을 조절할 수 있다. 또한 어떤 관계인지 상세하게 표기 가능함

 

<ER 다이어그램>

:관계 상세 표기

 

1. 차수와 필수 참여 여부

 

 

2. 식별자/비식별자 관계

 

- 식별자 관계(강한 연결관계): 외래키가 곧 기본키

: 고객 번호 없는 주문은 존재하지 않음

: 회원 번호 없는 희망 도서 신청은 존재하지 않음

-> 부모 엔터티 인스턴스가 삭제될 때, 관련된 자식 엔터티 인스턴스도 삭제돼야 함.

(-) 부모 PK가 생성되면 자식 PK도 생성되어야 하고, 조인도 해줘야 하기 때문에 불편

 

- 비식별자 관계(약한 연결관계): 외래키가 일반 속성

: 부서 없는 사원 존재 가능

: 회원번호 없는 열람 존재 가능(열람석 미리 세팅 등)

-> 부모 엔터티 인스턴스와 자식 엔터티 인스턴스가 독립적 생명주기 가질 수 있음.

 

=> 부모테이블의 PK가 자식테이블의 PK에 있으면 강한 연결관계,

부모테이블의 PK가 자식테이블의 일반 속성에 있으면 약한 연결관계

 

 

식별자 관계의 문제점: 오른쪽으로 갈수록 PK 개수 증가->조인 증가
비식별자 관계 문제점: (학번, 과목코드, 수강번호, 성적) 조회할 때 매번 조인해야 함.

 

=> 일단 모두 식별자로 놓고 필요한 경우 비식별자로 수정할 것.

 

<예시1: M:N 관계는 별도의 관계테이블로 빼줌 (일반적)>

ER 다이어그램 그리면서 관계 테이블 세부 속성 미리 결정(개념적 설계) -> 정규화를 통해 결정 및 재확인(논리적 설계)

<예시2: 인조식별자 도입 가능>

조인 성능 향상을 위해 본질 식별자들 대신 인조 식별자 하나를 만들어 사용 -> 기존 본질 식별자에 인덱스 따로 생성

반정규화에 해당 -> 정규화를 통해서는 생성x, 정규화 끝난 후 논리적 설계 단계에서 도입 여부 결정

 

PK도, FK도 아닌, 조회에 자주 사용되는 속성에 걸어주면 best, 아니면 그냥 FK에 걸어줘도 ok

 

'백엔드 > SQL' 카테고리의 다른 글

트랜잭션  (0) 2025.05.31
관계 데이터베이스 설계 - 함수 종속성과 정규화  (0) 2025.05.28
SQL을 활용한 데이터 집계와 분석(2)  (0) 2025.05.26
SQL을 활용한 데이터 집계와 분석(1)  (0) 2025.05.24
JOIN  (0) 2025.04.17