반응형

※ DB는 UI상에서도 작성할 수 있지만 쿼리로도 작성할 수 있다.

데이터베이스 = 스키마, 테이블 = 객체

 

  • DB

 - CREATE DATABASE [DB 명]

 - DROP DATABASE [DB 명]

 

  • TABLE

 - CREATE TABLE [테이블 명] (열 명, 자료형, DEFAULT, [NULL | NOT NULL], ...)

 - DROP TABLE [테이블 명]

 - ALTER TABLE [테이블 명] ADD / DROP / ALTER CULUMN [열 명, 자료형, ...]

 

※ 테이블 DROP시, 게임처럼 삭제 확인창이 뜨지 않으니 주의할 것. (자주 사용하지 않음)

 

  • 제약

 - NULL, NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY가 있다.

 - CREATE TABLE로 테이블 작설할 때 제약을 같이 정의한다. ('()'의 내용)

 - ALTER TABLE로 제약을 지정하거나 변경 가능.

 - 위와 같은 열에 대해 정의하는 제약을 '열 제약'이라고 한다.

 - CONSTRAINT : 제약에 이름을 부여할 수 있다. (이름을 붙이면 관리가 용이하다.)

 - ex) ALTER TABLE [테이블 명] ADD CONSTRAINT [제약 명] PRIMARY KEY (열 명)

 


  • 정규화

 - DB의 테이블을 규정된 형태로 개선해나가는 것.

 - 정규화를 통해 DB가 효율적으로 동작하도록 만들 수 있다.

 

 - 정규화 예시 DB

id name class level inventory
1 a knight 3 itemA 1개, itemB 3개
2 b wizard 2 itemA 5개, itemB 2개

 

 1. 반복되는 데이터를 세로(행 방향)로 늘려준다.

id name class level item itemCode count
1 a knight 3 itemA 01 1
1 a knight 3 itemB 02 3
2 b wizard 2 itemA 01 5
2 b wizard 2 itemB 02 2

 

 

 2. 데이터 분할, 키 처리

 - name, class, level과 item을 다른 테이블로 옮긴다.

 

2-1) 플레이어 테이블

id name class level
1 a knight 3
2 b wizard 2

 

2-2) 아이템 테이블

itemCode item
01 itemA
02 itemB

 

2-3) 인벤토리 정보 테이블

id itemCode count
1 01 1
1 02 3
2 01 5
2 02 2

 

위와 같이 정규화가 가능하다.

반응형

'Develoment > DB' 카테고리의 다른 글

[Database] 문법 정리  (0) 2021.06.10
[Database] 프로그램  (0) 2021.06.09

+ Recent posts