데이터베이스 설계

가비·2021년 2월 6일
0

[SQL]

목록 보기
12/13

데이터베이스 설계란? 데이터베이스의 스키마 내에 테이블, 인덱스, 뷰 등의 데이터베이스 객체를 정의하는 것을 말한다. 스키마 내에 정의한다는 뜻에서 '스키마 설계' 라고도 한다.

데이터베이스 설계

  • 테이블의 이름이나 열, 자료형을 결정한다.
  • 테이블 간의 관계를 생각하면서 여러 테이블을 정의하고 작성한다.

논리명과 물리명

  • 물리명 : 데이터베이스에서 사용될 이름으로 실제로 CREATE TABLE에 지정하는 이름을 말한다.
    👉 전통적으로 알파벳을 사용하며 데이터베이스 시스템에 따라 길이 제한이나 공백을 사용할 수 없는 등의 제약이 따른다.
  • 논리명 : 테이블의 설계상 이름에 해당한다.

✔️ 물리명은 변경하기 힘들지만 논리명은 언제나 바꿀 수 있다.

자료형

  • '1, 2, 3 중 하나' 또는 'yes, no 중 하나'만 취급하는 경우 데이터베이스 기능으로 CHECK 제약을 걸 수 있으므로 데이터 정합성이 중요한 부분에는 적극적으로 사용할 필요가 있다.
    👉 '1, 2, 3'의 경우 각 숫자에 '상, 중, 하'와 같은 의미가 부여될때는 정의서의 비고란에 기재한다.
    Tip MySQL에서는 테이블 작성시 comment 키워드를 이용하여 주석을 열 단위로 기입할 수 있다.

고정길이와 가변길이

  • 자리수가 이미 정해져 있는 경우 고정길이 문자열로 지정한다.
  • LOB(Large object)형의 경우 큰 데이터를 다루는 자료형이지만 인덱스를 지정할 수 없다.

기본키

  • MySQL의 경우 AUTO_INCREMENT를 지정하면 INSERT 될 때 마다 번호가 자동증가 된다.
    👉 PRIMARY KEY 또는 UNIQUE로 유일성을 지정해야 한다.

ER(Entity Relationship)다이어그램

  • 개체 간 관계를 표현한 것으로 관계형 데이터베이스의 릴레이션과 달리 릴레이션십을 말한다.
  • 릴레이션십을 표기할 때는 숫자나 기호로 나타낼 수 있다. (카디널리티 또는 다중도라고 한다)
    👉 가장 기본이 되는 표기방법으로 일대일, 일대다, 다대다가 있다.

0개의 댓글