RDBMS의 정규화란?
데이터베이스 설계 방식은 비정규화, 인덱싱, 트랜잭션 관리, 보안관리 백업복구가 있는데, 이 중, 정규화는 데이터의 중복을 최소화하고 효율적으로 관리하기 위한 방식.
정규화 적용에는 5나 6단계를 거침 그러나 보통 3단계로도 충분함
1차 (1NF) 각 필드가 하나의 값만을 갖도록 만듦 예를들어 한 학생당 여러 과목의 성적을 가지고 있는것을 한 행에 학 학생의 한 과목만 들어가게 만드는 것.
2차 (2NF) 데이터를 더 분리해서 각 데이터 조각이 기본키에 의존하도록 만듦 가령 학생의 주소같은 개인정보는 별도의 테이블로 분리하고, 학생 ID를 이용하여 성적 테이블과 연결
3차 (3NF) 데이터간 의존성을 제거 최혁 국어 50 수학 60 과학 70 영어 80 이었을때 현재까지는 최혁 국어 50 최혁 수학 60... 이었으면 국어 1 수학 2 과학 3 이런식으로 과목 코드를 이용하여 연결.
이러면 데이터 중복을 줄이고 일관성과 무결성을 유지하며 효율성을 유지할 수 있음.
mvc 패턴의 개념
애플리케이션을 model view controller로 나누는것. 그 각각은 데이터 처리를 담당하는 로직, 인터페이스, 입력을 처리하는 기능 로직 객체지향과도 비슷한데, 캡슐화 상속 다형성은 mvc패턴에서도 비슷한 역할을 한다.
장점이 있는데 파트별 분리 되어있는 구조는 유지보수에 긍정적 영향. 예를들어 모델을 수정중에 뷰나 컨트롤러를 건드리지 않을 수 있다. 전체적인 코드 로직을 이해하지 모해도 수정사항을 적용할 수 있다.
위와 같은 이유로 팀 작업에 용이한데 여러 파트가 독립적으로 작업될 수 있어 충돌을 줄이고 효율적인 협업을 돕는다
파트별로 독립되어 있다는 부분 때문에 해당 코드를 재 사용하기 쉽다 다른 환경이나 프로젝트에서 재 사용하기 쉽다는 의미.
또한 독립적으로 테스트가 가능하여 효율적으로 오류를 찾을 수 있다.
'TIL' 카테고리의 다른 글
http, https 개념과 차이점, TCP/UDP의 개념과 차이점 (0) | 2024.01.11 |
---|---|
여러 종류의 소셜 로그인을 위한 ERD 고찰 (1) | 2024.01.06 |
project 중간 정리 (0) | 2023.12.28 |
DFS (0) | 2023.12.15 |
Spring project에 Swagger 적용하기 (0) | 2023.12.12 |