데이터베이스를 설계한다는 것은 데이터베이스의 스키마 내에 테이블, 인덱스, 뷰 등의 데이터베이스 객체를 정의하는 것을 말한다. 스키마 내에 정의한다는 뜻에서 스키마 설게라 불리기도 한다.
데이터베이스의 설게의 주된 내용은 테이블의 이름이나 열, 자료형을 결정하는 것이다. 테이블 간의 관계를 생각하면서 여러 테이블을 정의하고 작성하게 된다. 단, 설계인 이상 테이블 정의에만 그치지 않는다.
테이블 설계시 테이블 이름이나 열 이름을 지정하는데, 하나의 테이블에 대해 두 개의 이름을 지정할 떄도 있다. 하나는 데이터베이스에서 사용될 이름으로, 실제로는 CREATE TABLE에 지정하는 이름을 말하며 물리명이라 부른다. 또 하나는 논리명이라는 것으로 테이블의 설게상 이름에 해당한다.
물리명은 규칙에 따라 길이 제한, 공백문자 사용 제약 등이 따른다. (일상 언어 지정 한계) 알파벳 사용 지정
item_master
, 논리명 상품 마스터
길이 제한 -> 생략 or 약자 이름 (물리명만으로 이름 전달 X -> 논리명 필요)
논리명은 해당 테이블을 실제로 부를 때 사용하는 이름
물리명은 CREATE TABLE에 지정하는 테이블 이름이나 열이름이다. 논리명은 설계상의 이름이다.
테이블 열에는 자료형을 지정해야 한다.
문자열의 자료형에는 고정길이와 가변길이가 있으며 저장할 데이터를 고려해 결정해야 한다. 문자열의 길이의 변동폭이 클 경우에는 가변길이 문자열이 적합하다. 조금 큰 파일인 경우 LOB형을 사용한다. (Large Object)
기본키로 지정할 열이 생각나지 않는 경우 자동증가 열을 사용해서 기본키로 지정하면 간단하게 해결할 수 있다. MySQL의 경우 AUTO_INCREMENT를 지정 -> PRIMARY KEY 혹은 UNIQUE로 유일성 지정 필요
테이블 간의 관계를 ㅁ여확히 하기 위해 사용하는 설계도
E: Entity
R: Relationship
개체 간의 관계를 표현한 것
엔티티(개체): 테이블 또는 뷰, 사각형 (상단: 이름, 사각형안: 개체의 속성) 속성 -> 테이블의 열 (기본키부터 기술, 논리명 표기)
선: 개체 간의 연계, 서로 몇 개의 데이터 행과 연관되는지를 숫자나 기호로 나타낼수 있다.
일대일 (1:1)
일대다 (1:M)
다대다 (N:M)
ER 다이어그램의 연계는 데이터베이스에서는 외부참조제약(외부키 제약)으로 지정되는 경우가 있다.