TIL(20240719) [최종프로젝트 설계과정/RDBMS정규화와 PK와FK 기술면접]
TIL(20240719) [최종프로젝트 설계과정/RDBMS정규화와 PK와FK 기술면접]
📌Challengers 와이어프레임
- RDBMS의 정규화에 대해 설명해주세요.
- 정규화의 기본 목표는 테이블 간의 중복된 데이터를 허용하지 않는다는 것으로 RDBMS를 설계할 때 중복을 최소화하면서 데이터 구조를 짜는 과정을 의미하는데요, 정규화 과정을 통해 중복 데이터를 제거하고 이상 현상을 방지하여 데이터베이스 구조를 최적화 하여 데이터의 일관성과 무결성을 유지할 수 있습니다. 그러나, 과도한 정규화는 성능 저하를 일으킬 수 있기 때문에 적절한 수준에서의 정규화가 필요합니다.
- 정규화 단계 제1정규화, 제2정규화, 제3정규화
- 제 1정규화: 각 컬럼이 원자 값(하나의 값)을 가지도록 하는 과정 즉, 각 컬럼은 하나의 데이터만 저장하며 다중 값을 갖지 않는다. 장점: 테이터의 크게 줄어들어 공간적 효율성 향상, 데이터 무결성 유지에 도움, 이상현상 문제 방지, 구조가 단순해짐
- 제 2정규화: 제 1정규화를 완료한 테이블에서, 부분 함수 종속성을 제거하는 과정이다. 즉, 현재 테이블의 주제와 관련 없는 컬럼을 다른 테이블로 빼는 작업 (주제에 맞는 테이블로 구성하여 분리하는 작업으로 이해했다.) 장점: 역할에 집중하여 관리되어 중복이 크게 줄어들며, 데이터 관리 및 유지 보수 향상
- 제 3정규화: 제2 정규화를 완료한 테이블에서, 이행적 함수 종속성을 제거하는 과정인데 이행적 함수 종속이란 A->B종속, B->C종석, A->C종속인 관계, 이행적 종속성으로 중복 데이터와 데이터 무결성 문제가 발생할 수 있음 (각 주제별 필요한 고유ID만 가지게 하여 분리하는 것으로 이해했다.)
1
** 이상현상 : 데이터베이스를 잘못 설계하면 불필요한 테이터 중복으로 인한 공간낭비 및 부작용을 초래할 수 있는데, 이러한 부작용을 이상이라고 하며 삽입이상, 갱신이상, 삭제이상이 있다.
- Primary Key, Foreign Key에 대해 설명해주세요.
- PK는 관계형 데이터베이스 테이블에서 각 레코드를 고유하게 식별하기 위해 사용되는 값입니다. (사람- 주민등록번호) 특징을 간단히 말씀드리면, 고유한 값의 특성으로 테이블 내에서 각 레코드는 오직 하나의 pk 값을 가져야만 하며 이 값이 테이블의 기본 식별자 역할을 하기 때문에 빠른 검색을 가능하게 합니다. 테이블 생성 시 값이 지정되며 변경이 어렵거나 비용이 많이 들 수 있다는 단점이 있습니다. FK는 관계형 데이터베이스에서 한 테이블의 필드로 다른 테이블의 PK를 가르키는데 사용되는 필드입니다. 여러 테이블을 서로 연결하고 테이터 간의 관계를 정의할 수 있으며 테이터의 무결성을 유지하고 참조 무결성을 강제할 수 있습니다. (FK 관계형 데이터베이스의 데이터 관계를 표현하기 위한 키로, 참조되는 테이블의 pk를 fk 라고 한다.)
This post is licensed under CC BY 4.0 by the author.