일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 프라이머리키
- 패스트캠퍼스
- 파이썬
- db네이밍규칙
- 내일배움캠프
- 스파르타코딩
- 자기계발회고
- dbnamingrule
- jpa플러시
- 준태튜터님
- 포링키
- 팀스파르타
- 코딩
- 스파코
- 스파르타코딩클럽
- db설계핵심요약
- 장고
- Python
- 장고기초지식
- 데이터베이스네이밍규칙
- jakartapersistenceapi
- tableperclass
- 릴레이션십데이터베이스
- 리콰이어먼츠 설정
- django
- spring필수문법
- 데이터베이스설계요약
- db설계과정
- db설계방법
- JPA
- Today
- Total
당우 일기장
DB설계 전체과정 본문
DB 설계 과정 이란?
데이터베이스를 효율적으로 설계하기 위해 데이터를 파악하고 정리해서 테이블로 만드는 과정
실생활 예시
1. 저장해야 하는 데이터 파악하기
데이터베이스를 설계하기 전에 어떤 데이터를 저장해야 하는 지 파악해야 한다
그러려면 대략적인 UI화면 디자인이 나와있어야한다
ui 디자인이 나오기 전이라면 요구사항 명세서 라도 정리되어 있어야 어떤 데이터를 저장해야 하는 지 파악할수있다
(요즘은 요구사항 정의서는 잘 작성하지않는 추세이다)
요구사항 명세서 - Google 검색
4] 프로젝트 범위관리, 요구사항 명세서를... blog.gridge.co.kr
www.google.com
구글에 검색하면 많이나오니 찾아보자
2. 그룹핑 해서 분류하기
저장해야 하는 데이터를 묶어서 그룹핑 할 수 있는 상위개념을 찾아야한다.
[예시]
비슷한 데이터끼리 묶기: 관련 있는 데이터를 상위 개념으로 묶어서 그룹으로 나눈다
아이디 패스워드 이름 이메일 -> 사용자
영화이름, 출연배우, 상영시간 -> 영화
게시글 제목, 내용,생성시간 -> 게시글
상위 개념 찾기: 데이터를 묶을 수 있는 큰 카테고리를 정하자
예: "좋아요 수, 댓글 수"는 "게시글" 그룹에 포함될 수 있음.
중복 줄이기: 같은 데이터가 여러 그룹에 중복되지 않게 정리.
예: "사용자 이름"은 "사용자" 그룹에만 넣고, "게시글" 그룹에는 "사용자 ID"만 연결.
3. 6가지 규칙 적용시키면서 테이블 분리해나가기
- 정규화(Normal Form) 규칙을 적용해서 테이블을 나눠요.
- 1NF: 데이터가 원자값이어야 함(한 열에 여러 값 X).
- 2NF: 부분 종속 제거(기본 키에 완전히 종속).
- 3NF: 이행 종속 제거(기본 키 외 다른 열에 종속 X).
- BCNF: 결정자가 후보 키여야 함.
- 4NF, 5NF: 다치 종속, 조인 종속 제거(고급 단계).
- 예: "사용자"와 "게시글"을 나눠서 users 테이블과 posts 테이블로 분리.
DB 설계 과정: 데이터를 파악하고, 그룹핑해서, 정규화로 테이블 나누기.
핵심 포인트: 데이터 파악 → 그룹핑 → 정규화로 깔끔하게 정리.
-----------------------------------------------------------------------------------
이 글은 박재성님의 비전공자도 이해할 수 있는 DB설계 입문/실전 강의를 요약한 내용입니다
'DB' 카테고리의 다른 글
DB설계의 핵심은 중복 없애기 이다 (1) | 2025.04.07 |
---|---|
RDBMS의 PK와 FK (기본키와 외래키) (1) | 2025.04.07 |
관계형 데이터베이스의 기본 구성(RDBMS) (0) | 2025.04.07 |
데이터베이스 모델링(Database Modeling)이란? (0) | 2025.04.07 |