3.1.3 중복 데이터 저장 최소화하기

    지금까지 봤듯이 데이터를 관리하는 데 테이블을 사용하면 편리합니다. 그런데 한 가지 더 짚고 넘어갈 내용이 있습니다. 1장에서 RDBMS의 특징 중 하나는 ‘테이블을 이용해 중복 데이터 저장을 최소화한다’였습니다. 도대체 어떤 식으로 중복 데이터를 최소화해서 테이블에 저장하는지 알아보죠.

    표 3-1에 우리나라에 있는 도시가 나와 있는데, 이는 데이터베이스에서 우리나라의 도시만 가져오기 위해 CountryCode 칼럼 값이 ‘KOR’인 건을 조회한 결과입니다. 그런데 ‘KOR’은 국가 코드이지 국가명이 아닙니다.

    예제 데이터에 담긴 우리나라의 영문 국가명은 ‘South Korea’입니다. 따라서 다음처럼 국가명이 South Korea로 나와야 하는데, 왜 city 테이블을 만든 사람은 KOR이라고 넣었을까요?

    ▼ 표 3-2 국가명을 도시 정보에 담은 예

    ID

    Name

    CountryName

    District

    Population

    2331

    Seoul

    South Korea

    Seoul

    9981619

    2332

    Pusan

    South Korea

    Pusan

    3804522

    2333

    Incheon

    South Korea

    Incheon

    2559424

    2334

    Taegu

    South Korea

    Taegu

    2548568

    2335

    Taejon

    South Korea

    Taejon

    1425835

    2336

    Kwangju

    South Korea

    Kwangju

    1368341

    테이블에 KOR 대신 South Korea를 넣으면 저장 공간을 많이 차지합니다. KOR은 3글자지만, South Korea는 공백 포함 11글자입니다. 우리나라는 영문 국가명이 11자로 짧은 편에 속하지만, 아주 긴 영문 국가명을 가진 나라도 있습니다. 도미니카 공화국은 Dominican Republic으로 18자, 콩고는 Congo, The Democratic Republic of the로 37자나 되죠.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.