건물 문맥이 있어야 강의실이 식별된다

Room의 키는 따로 생기지 않고 Building.id와 함께 완성된다

약한 개체의 핵심은 부분 키만으로는 부족하다는 점입니다. 강의실 번호는 건물 안에서만 의미가 있으므로, 부모 키를 받아 복합 기본키를 만듭니다.

building_id + room_number
ER 모델

관계의 출발점은 소유 개체와 부분 키다

소유 개체

Building

기본키 id
식별관계

약한 개체

Room

부분 키 room_number

같은 101호라도 어느 건물인지 없으면 한 행을 고를 수 없습니다.

식별 규칙

부모 키가 FK로 들어오면서 동시에 PK의 일부가 된다

가져오는 값
building_id
부모 buildings.id를 가리키는 FK
약한 개체의 부분 키
room_number
건물 안에서만 구분되는 값
완성된 복합 PK
PRIMARY KEY (building_id, room_number)
릴레이션 결과

rooms 테이블은 부모 연결과 식별 기준을 함께 저장한다

building_id는 부모를 참조하고, room_number와 묶여 각 강의실 행을 고유하게 만듭니다.
rooms (
  building_id   NUMBER REFERENCES buildings(id),
  room_number   VARCHAR2(10),
  capacity      NUMBER,
  has_projector CHAR(1) DEFAULT 'N',
  PRIMARY KEY (building_id, room_number)
)

즉, 식별관계는 단순 연결선이 아니라 부모 키를 포함한 실제 테이블 키 구조로 남습니다.

요점: 약한 개체는 독립 PK를 새로 만들지 않습니다. 소유 개체 PK + 부분 키 조합이 그대로 릴레이션의 복합 기본키가 됩니다.