후보키와 대체키의 역할과 관계는?
👉 후보키는 유일성과 최소성을 모두 갖춘 속성들입니다. 기본키로 사용 가능한 후보들이 되는 키입니다. 대체키는 기본키가 되고 남은 속성들을 의미합니다. 후보키는 대체키를 포함한다고 볼 수 있을 것 같습니다.
DB 설계에서 식별자로 자연키와 인조키 중
어떤 것을 선택하는 것이 바람직한지 말하고,
그 이유를 설명하세요.
👉 인조키를 선택하는 것이 바람직합니다. 그 이유를 말씀 드리겠습니다. 첫째, 자연키는 변경될 수 있습니다. 예를 들어, 회원 정보에서 전화번호 항목을 수집한다고 가정했을 때, 전화번호는 유일하지만 회원의 상황에 따라 변경될 수 있습니다. 둘째, 환경이 변할 수 있습니다. 예를 들어, 주민번호를 수집해 식별자로 사용하다가 국가에서 해당 속성을 수집하지 못하게 한다면 또 다른 대체키 중에서 식별자를 선택해야 하는 상황이 발생합니다. 따라서 자연키보다 인조키를 식별자로 선택하는 것이 바람직하다고 할 수 있습니다.
복합키를 사용할 때의 장단점은?
👉 먼저 장점을 말씀 드리겠습니다. ID라는 식별자를 별도로 둘 필요가 없습니다. 기존에 있던 속성들로 키를 생성하면 되므로 키를 조합하기가 쉽습니다. 다음으로 단점을 말씀 드리겠습니다. 첫째, 제약 조건 변경 시 기본키 전체 수정이 필요합니다. 복합키에 필요한 필드들의 제약조건이 변경된다면 기본키 전체 수정이 발생할 수도 있습니다. 또한 다른 테이블과 참조 관계를 맺고 있다면 해당 테이블의 내용도 모두 바꿔줘야 하는 문제가 생깁니다.
ERD가 프로젝트에서 어떤 역할을 하는지 설명하세요.
👉 ERD는 엔티티와 속성들의 관계를 그림으로 나타내기 때문에 데이터베이스의 구조를 한눈에 파악할 수 있습니다. 데이터베이스를 구축 시 뼈대 역할을 하며, 서비스 구축 시 제일 먼저 신경써야 할 부분입니다. 이를 통해서 API를 보다 효율적으로 뽑아낼 수 있습니다.
엔티티 관계 표시법에서 식별자 관계와
비식별자 관계의 차이점을 설명하세요.
👉 첫째, 상위 개체 타입이 결정되지 않으면 개별 개체를 식별할 수 없는 종속된 개체 타입이 포함된 관계는 식별자 관계로, 독립적으로 식별할 수 있는 개체들끼리의 관계는 비식별자 관계로 표현합니다. 둘째, 그리고 식별자 관계는 실선으로, 비식별자 관계는 점선으로 표현합니다.
정규화가 DB 설계 시 어떤 영향을 미칠지 설명하세요.
👉 정규화는 입력/수정/삭제 이상현상을 제거하는 것입니다. 데이터의 중복 속성을 제거하므로 한 테이블의 데이터 용량이 최소화되는 효과가 있습니다.
정규화된 데이터 모델이 가지는 장단점과
DB 성능에 미치는 영향을 설명하세요.
👉 정규화된 데이터 모델은 조회 시 처리 조건에 따라 성능이 향상 또는 저하가 될 수 있으며, 정규화된 데이터 모델은 입력/수정/삭제 시 무조건 성능이 향상됩니다. 상호 종속성이 강한 데이터 요소들을 분리하여 독립된 개념으로 정의하므로 유연성이 극대화됩니다.
'Computer Science > DB' 카테고리의 다른 글
[DB] 트랜잭션(3) - 격리 수준(Isolation level)과 이상 현상 (0) | 2024.03.14 |
---|---|
[DB] 트랜잭션(2) - 병행 수행과 병행 제어(Concurrency Control) (0) | 2024.03.14 |
[DB] 트랜잭션(1) - 정의, ACID, 상태, 문법, 예외 (0) | 2024.03.13 |
[DB] ERD와 정규화(Normalization) 과정 (0) | 2024.03.11 |
[DB] Key(기본키, 후보키, 슈퍼키, 대체키) (0) | 2024.03.10 |