정규화(4)
-
DB 설계 Q&A
정규화를 하면 성능이 떨어진다던데요 ?✅ 정규화를 하면 성능이 떨어진다던데요 ?특정 회사의 데이터베이스를 까보면 정규화가 안 되어 있는 설계를 종종 만난다. 그래서 DB 설계를 하신 분한테 왜 정규화를 적용시키지 않았냐고 물어보면 대부분 아래와 같이 답변한다.정규화를 지키면 테이블 개수가 많아져서 관리가 불편해요.→ 데이터 중복으로 인해 발생하는 단점들이 훨씬 크고 관리하기가 더 어렵다.정규화로 테이블을 나누면 조회할 때 JOIN을 해야 해서 쿼리가 복잡해져요.→ 이렇게 얘기하는 사람 치고 SQL문 잘 작성하는 사람 못봤다. 자신이 JOIN 문이 어려우니까 쿼리가 복잡하다고 얘기하는 것이다. SQL문에서 JOIN문은 기본적인 문법 중 하나다.JOIN을 많이 하면 할수록 성능이 안 좋아져서 정규화를 안 했..
2025.08.27 -
[실습] 화면 UI 디자인을 보고 DB 설계해보기
* 이 글은 개발 공부를 위한 블로그글로 지식전달보다는 개발 공부 일지에 초점이 맞춰져 있으니 유의하시길 바랍니다.UI 하나하나보고 데이터 파악하기- 프론테엔드 개발자에게 하나하나 어떤 데이터를 뜻하는 지 물어봐야 함.- 보통 피그마 많이 사용함.- 프론트에서 고정적으로 데이터를 저장할 수도 있고, 자주 바뀌는 데이터라면 백엔드에 데이터를 저장하고 프론트로 가지고 가게 할 수도 있다. 이 부분은 그때그때마다(서비스마다) 다르다.- 프론트와의 소통이 아주 중요해보인다. 자주자주 물어보고 확인하는 과정이 꼭 필요하다.*역정규화개념이 있을 수 있다. 테이블을 나눠주지 않고 데이터를 사용하는 경우인데, 이는 나중에 데이터베이스를 숙달한 후에, 다시 공부하는 것을 추천한다.데이터를 파악하고 나서부터는 6가지 규칙..
2025.08.21 -
[실습] 요구사항을 보고 DB 설계해보기 - JSCODE 쇼핑몰
* 이 글은 개발 공부를 위한 블로그글로 지식전달보다는 개발 공부 일지에 초점이 맞춰져 있으니 유의하시길 바랍니다.✅ 요구 사항(현업에서는 UI를 보고 요구사항을 파악하는 경우가 많으니, 지금하는 실습은 연습용이라는 것을 기억해두자)회원가입 기능회원가입 시 이메일, 비밀번호, 이름, 주소, 전화번호의 정보를 받는다.로그인 기능로그인할 때 이메일과 비밀번호를 활용해서 로그인한다.상품 등록 기능로그인한 사용자만 상품을 등록할 수 있다.상품에는 상품명, 설명, 가격, 재고량, 카테고리(의류, 신발, 가전제품 등)의 정보가 포함된다.상품 조회 기능상품명, 설명, 가격, 재고량, 등록 시간을 조회할 수 있다.특정 카테고리의 상품만 조회할 수 있다.주문 기능한 번 주문할 때 여러 개의 상품을 주문할 수 있다.각 상..
2025.08.21 -
DB 설계의 핵심 원칙 및 전체 과정
* 이 글은 개발 공부를 위한 블로그글로 지식전달보다는 개발 공부 일지에 초점이 맞춰져 있으니 유의하시길 바랍니다.DB 설계할 때 이런 개념들 몰라도 아무 문제 없습니다!- 기본키, 후보키, 대체키, 슈퍼키- 개체-관계 모델- 모델링 과정 (개념적 모델링, 논리적 모델링, 물리적 모델링)- 이상현상 (삭제이상, 삽입이상, 수정이상)- 함수 종속성 - 제1정규형 ~ 제5정규형, BCNF 정규형 / 부분적 함수 종속, 이행적 함수 종속 DB 설계 시 꼭 기억해야 할 핵심 원칙 1가지중복 없애기 = 정규화정규화 (Normalization)- 데이터 중복을 제거하여 이상현상(삽입이상, 삭제이상, 수정이상)을 방지하고 데이터의 무결성을 유지하도록 한다.- 데이터를 잘못 수정해서 어떤 테이블에서는 수정했으나 다른 ..
2025.08.20