2025. 8. 20. 14:47ㆍ개발/DB
* 이 글은 개발 공부를 위한 블로그글로 지식전달보다는 개발 공부 일지에 초점이 맞춰져 있으니 유의하시길 바랍니다.
DB 설계할 때 이런 개념들 몰라도 아무 문제 없습니다!
- 기본키, 후보키, 대체키, 슈퍼키
- 개체-관계 모델
- 모델링 과정 (개념적 모델링, 논리적 모델링, 물리적 모델링)
- 이상현상 (삭제이상, 삽입이상, 수정이상)
- 함수 종속성
- 제1정규형 ~ 제5정규형, BCNF 정규형 / 부분적 함수 종속, 이행적 함수 종속
DB 설계 시 꼭 기억해야 할 핵심 원칙 1가지
중복 없애기 = 정규화
정규화 (Normalization)
- 데이터 중복을 제거하여 이상현상(삽입이상, 삭제이상, 수정이상)을 방지하고 데이터의 무결성을 유지하도록 한다.
- 데이터를 잘못 수정해서 어떤 테이블에서는 수정했으나 다른 테이블에서는 그 데이터가 수정되지 않았을 경우를 수정이상이라고 한다. 나는 정보처리기사 필기 공부를 할 때, 갱신이상 (Update Anomaly) 이라고 배웠던 부분이다.
- 정규형에는 총 6가지 종류의 정규형이 있다. 하지만 실제 현업에서 적용시키는 정규형은 1정규형, 2정규형, 3정규형이다.
- BCNF, 4정규형, 5정규형을 적용시키면 지나치게 테이블이 분리되어서 관리가 복잡해지기 때문이다.
DB 설계 전체 과정
1. 저장해야 는 데이터 파악하기
- 요즘 현업에서 글로 이루어진 요구사항 명세서를 작성하지 않는다.
- 완성된 UI를 보고 필요한 데이터를 파악한다.
2. 분류하기
- 저장해야하는 데이터를 그룹화. 묶어서 분류한다.
아래와 같은 요구사항이 있다면? => 저장 해야할 데이터를 파악한다. 아래에 있는 굵은 키워드들!
- 회원가입 기능
- 회원가입을 할 때 이메일, 비밀번호, 이름의 정보를 받는다.
- 로그인 기능
- 로그인할 때 이메일, 비밀번호를 활용해서 로그인한다.
- 게시글 작성 기능
- 로그인한 사용자만 게시글을 작성할 수 있다.
- 게시글에는 제목과 내용을 작성할 수 있다.
- 게시글 조회 기능
- 작성자, 게시글 제목, 게시글 내용, 게시글 작성 시간을 조회할 수 있어야 한다.
이 키워드들을 모은 다음에, 그룹핑해서 분류하기
- 이메일, 비밀번호, 이름 → 사용자
- 작성자, 게시글 제목, 게시글 내용, 게시글 작성 시간 → 게시글
테이블로 나타낸다면?
* 엔티티(Entity)는 관련된 속성(데이터 항목)들을 모아놓은 개념적인 집합이며, 보통 실제 데이터베이스의 테이블이 됩니다.
'개발 > DB' 카테고리의 다른 글
[실습] 화면 UI 디자인을 보고 DB 설계해보기 (2) | 2025.08.21 |
---|---|
[실습] 요구사항을 보고 DB 설계해보기 - JSCODE 커뮤니티 (0) | 2025.08.21 |
[실습] 요구사항을 보고 DB 설계해보기 - JSCODE 쇼핑몰 (0) | 2025.08.21 |
⭐️복잡한 개념을 몰라도 누구나 따라할 수 있는, 마법의 DB 설계 규칙 5가지⭐️ (3) | 2025.08.20 |
DB 설계 전 필수로 알아야 하는 개념 (2) | 2025.08.19 |