country와 countrylanguage 테이블의 관계
먼저, country 테이블과 countrylanguage 테이블에서는 Code와 CountryCode가 조인 칼럼입니다. 두 테이블의 연결선을 보면 두 가지 특징이 있죠. 실선이면서 countrylanguage 쪽으로 삼지창 모양의 가지가 뻗어 있죠.
실선은 두 테이블의 조인 칼럼인 Code 칼럼과 CountryCode 칼럼이 모두 기본 키 칼럼이라는 뜻입니다. 그리고 삼지창 모양은 country와 countrylanguage 테이블이 일대다 관계임을 뜻합니다. 일대다 관계는 Code 칼럼의 값 1개가 CountryCode 칼럼에는 여러 건(로우)이 입력될 수 있다는 의미입니다.
country 테이블의 기본 키 칼럼은 Code이며 중복을 허용하지 않습니다. 따라서 하나의 로우가 한 국가를 의미합니다. 그러나 countrylanguage 테이블에서는 하나의 로우가 하나의 국가를 의미하지 않습니다. 어느 한 국가가 사용하는 언어가 1개 이상일 수 있기 때문이죠. 예를 들어 스위스는 4개 언어를 사용합니다. 그래서 countrylanguage 테이블의 기본 키 칼럼은 CountryCode와 Language 칼럼이고, 두 칼럼 값을 조합해 유일한 값이 됩니다. 이는 countrylanguage 테이블에 동일한 국가가 여러 건 입력될 수 있음을 뜻합니다. 그러므로 country와 countrylanguage 테이블은 일대다 관계입니다. 예로 든 스위스는(국가 코드 CHE) country 테이블에는 1건이 있지만, countrylanguage 테이블에는 4건이 있어서 일대다 관계(1:4)가 됩니다.
이런 관계를 부모-자식 관계라고 합니다. 한 부모에 여러 명의 자식이 있을 수 있듯이, 한 국가에서도 여러 언어를 사용할 수 있습니다. 여기서는 country 테이블이 부모, countrylanguage 테이블이 자식에 해당합니다.