[SQL] 5 데이터베이스 준비하기
데이터베이스를 설계할 때 필요한 지식에 대한 내용이다.
먼저, 데이터베이스가 무엇인지에 대한 내용은 이전 포스트를 참고하면 된다.
데이터모델링이란?
효율적으로 데이터베이스를 구축하기 위해 데이터베이스의 뼈대를 세우는 작업이다.
다음과 같은 단계로 진행된다.
- 요구 사항 정리: 데이터가 어떠한 형택, 어떤 목적을 가지고 있는지 정리
- 개념적 데이터 모델 설계: 핵심 개체를 찾고, 각 개체 간의 관계를 정리
- 논리적 데이터 모델 설계: 실제 데이터베이스로 구현하기 위한 모델링
- 물리적 데이터 모델 설계: 데이터가 어떻게 컴퓨터에 저장될 지 설계
데이터베이스 네이밍 규칙
유지보수와 의미의 명확성을 전달하기 위해 네이밍 규칙을 설정하는 것이 좋다.
공통 규칙
- 줄임말 사용은 최소화한다. (단, 사용할 경우 범용적으로 사용되는 줄임말을 사용해야 한다.)
- kb_image (X) → kickboard_image (O)
- tb_KickboardInfo (△) (Info: Information의 줄임말)
테이블 네이밍 규칙
- 테이블 명을 작성할 때는 파스칼 표기법을 사용한다.
- kickboard_rental (X) → KickboardRental (O)
- customer_info (X) → CustomerInfo (O)
- 테이블, 뷰(View)임을 한 눈에 확인 할 수 있도록 테이블 명 앞에는 ‘tb_’, ‘v_’ 를 붙인다.
- tb_KickboardRental (킥보드 대여와 관련된 테이블)
- v_KickboardInfoForAnalysis (데이터 분석을 위해 필요한 정보만 모아 둔 가상 테이블)
속성 네이밍 규칙
- 속성 명을 작성할 때는 스네이크 표기법을 활용한다.
- customerID (X) → customer_id (O)
- CustomerTel (X) → customer_tel (O)
- 유일키, 외래키 등은 한 눈에 알아볼 수 있도록 속성명 앞에 ‘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 '참조하는 속성이 있는 테이블' ('참조할 속성명') }
댓글남기기