데이터베이스를 설계할 때 필요한 지식에 대한 내용이다.

먼저, 데이터베이스가 무엇인지에 대한 내용은 이전 포스트를 참고하면 된다.

데이터모델링이란?

효율적으로 데이터베이스를 구축하기 위해 데이터베이스의 뼈대를 세우는 작업이다.

다음과 같은 단계로 진행된다.

  1. 요구 사항 정리: 데이터가 어떠한 형택, 어떤 목적을 가지고 있는지 정리
  2. 개념적 데이터 모델 설계: 핵심 개체를 찾고, 각 개체 간의 관계를 정리
  3. 논리적 데이터 모델 설계: 실제 데이터베이스로 구현하기 위한 모델링
  4. 물리적 데이터 모델 설계: 데이터가 어떻게 컴퓨터에 저장될 지 설계

데이터베이스 네이밍 규칙

유지보수와 의미의 명확성을 전달하기 위해 네이밍 규칙을 설정하는 것이 좋다.

공통 규칙

  1. 줄임말 사용은 최소화한다. (단, 사용할 경우 범용적으로 사용되는 줄임말을 사용해야 한다.)
    • kb_image (X) → kickboard_image (O)
    • tb_KickboardInfo (△) (Info: Information의 줄임말)

테이블 네이밍 규칙

  1. 테이블 명을 작성할 때는 파스칼 표기법을 사용한다.
    • kickboard_rental (X) → KickboardRental (O)
    • customer_info (X) → CustomerInfo (O)
  2. 테이블, 뷰(View)임을 한 눈에 확인 할 수 있도록 테이블 명 앞에는 ‘tb_’, ‘v_’ 를 붙인다.
    • tb_KickboardRental (킥보드 대여와 관련된 테이블)
    • v_KickboardInfoForAnalysis (데이터 분석을 위해 필요한 정보만 모아 둔 가상 테이블)

속성 네이밍 규칙

  1. 속성 명을 작성할 때는 스네이크 표기법을 활용한다.
    • customerID (X) → customer_id (O)
    • CustomerTel (X) → customer_tel (O)
  2. 유일키, 외래키 등은 한 눈에 알아볼 수 있도록 속성명 앞에 ‘pk_’, ‘fk_’를 붙인다.
    (단, 중복으로 설정되어 있는 경우 외래키 > 유일키 순으로 작성한다.)
    • pk_kickboard_id
    • fk_pk_customer_id

키 (Key)

데이터베이스에서 튜플(레코드, 행) 간 구분을 위한 값(속성)
→ 유일키, 복합키, 외래키 등 다양한 종류가 존재

유일키 (Primary Key)

테이블에서 튜플(레코드, 행)을 구분지어주는 고유 식별 값(속성)

유일키 값은 중복될 수 없으며, NULL 값 또한 불가능

  • 유일키(Primary Key) 선언하기

     CREATE TABLE '테이블명'{ 
        '속성명' 타입,
        '속성명2' 타입,
        ...
        PRIMARY KEY ('유일키로 사용할 속성명')
    }
    

복합키 (Composite Key)

두 개 이상의 속성을 활용하여 튜플(레코드, 행)을 구분지어주는 방법이다.

  • 복합키 (Composite Key) 선언하기

    CREATE TABLE '테이블명'{ 
        '속성명' 타입,
        '속성명2' 타입,
        ...
        PRIMARY KEY ('복합키로 사용할 속성명', '복합키로 사용할 속성명')
    }
    

외래키 (Foreign Key)

다른 테이블의 키와 연결을 해주는 키이며, 참조의 무결성을 유지하기 위해 활용

*참조의 무결성: 외래키 값이 참조 중인 테이블의 값과 일관성을 가지는 것을 의미

  • 외래키 (Foreign Key) 선언하기

    CREATE TABLE '테이블명'{ 
        '속성명' 타입,
        '속성명2' 타입,
        ...
        FOREIGN KEY ('외래키로 사용할 속성명') REFERENCES '참조하는 속성이 있는 테이블' ('참조할 속성명')
    }
    

댓글남기기