인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

창신동 장첸님의 프로필 이미지
창신동 장첸

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

일대일 [1:1]

일대일[1:1] 15: 23 외래키

작성

·

274

0

외래키에 null허용하는 것은 얼마든지 가능한 이야기인데

DBA입장에서 왜 치명적이라고 말씀하신건지 이유가 궁금합니다.

답변 1

4

안녕하세요. kelixo Do 님, 공식 서포터즈 codesweaver 입니다.

.

데이터 베이스에서 가장 중요한 것은 데이터의 무결성 입니다. 그리고 이러한 무결성을 지키기 위해 여러가지 제약을 하게 됩니다. ForeginKey(이하 F.K)의 경우, 부모 테이블의 특정 컬럼(이 컬럼은 PrimaryKey(이하 P.K) 혹은 UniqueKey(이하 U.K) 중 하나여야 함) 을 참조하는 키 라는 제약이 있습니다.

U.K의 경우 Null을 허용하기에 F.K가 Null이 되는경우가 발생할 순 있습니다. 그러나 P.K를 참조하는 F.K는 Null일 경우 무결성을 위배한 것이 되며 이는 치명적 상태라고 할 수 있습니다.

.

그리고 U.K가 Null인것이 규칙상 가능은 하지만 이것 또한 U.K를 사용하는 취지에는 어긋난다고 할 수 있습니다. 키나 인덱스로 잡힌 것들은 기본적으로 Null인 경우를 피하는 것이 좋다고 생각합니다. 참고하실 만한 블로그 링크를 남깁니다.

[SQL] PRIMARY KEY, FOREIGN KEY 데이터 무결성을 위한 제약 조건 (tistory.com)

.
감사합니다.

창신동 장첸님의 프로필 이미지
창신동 장첸

작성한 질문수

질문하기