공부/데이터베이스2011. 7. 16. 14:08


데이터를 어떻게 사용할 것인가에 따라 테이블을 만든다.

SQL은 관계형 데이터베이스 관리시스템(RDBMS)를 위한 언어.
관계형은 여러 테이블의 열들의 관계.
테이블을 잘 설계하려면 정보를 나타낼 때 여러 테이블 사이의 열들이 서로 어떠한 관계에 있는지를 고려해야 한다. 
 
테이블 생성 과정.

1. 테이블로 표현하려는 것을 찾는다.
2. 테이블을 사용할 때, 표현하려는 것에 대한 정보들의 리스트를 만든다.
3. 리스트를 이용해서 그 정보들을 조각들로 쪼개고, 조각들은 테이블을 잘 만드는데 이용된다.

 쪼개는 방식

원자적으로 쪼갠다.
효율적인 테이블을 만드는데 필요한 한도 내에서 가능하면 작은 조각으로 나눠야 한다.
쿼리가 짧아지고 정확해진다.

원자적 데이터에 대한 규칙
1. 원자적 데이터로 구성된 열은 그 열에 같은 타입의 데이터를 여러 개 가질 수 없다.
2. 원자적 데이터로 구성된 테이블은 같은 타입의 데이터를 여러 열에 가질 수 없다.

정규화 첫단계

데이터를 원자적으로 만들기.
정규테이블은 중복데이터가 없어 데이터베이스 크기를 줄여주고, 찾아야 할 데이터가 적어 쿼리가 더 빨라진다.

정규화 두번째 단계

각 행은 기본키(primary key)를 가지고 있어야 한다.
각 레코드를 다른 레코드와 구분할 수 있는 열. 예 id
기본키는 NULL이 될 수 없다.
값이 반드시 있어야 한다.
간결해야 한다.
기본키 값은 변경할 수 없다.

SHOW 명령어

SHOW CREATE TABLE my_contacts;
테이블 생성 코드
SHOW COLUMNS FROM tablename;
테이블의 모든열 표시. 데이터 타입과 열의 세부사항
SHOW CREATE DATABASE databasename;
데이터베이스 생성 코드
SHOW INDEX FROM tablename;
인덱스 정보

경고 메시지 확인
SHOW WARNINGS;

기본키가 있는 테이블 생성하기
 
CREATE TABLE `doughnut_list` (
  `doughnut_id` int(11) NOT NULL AUTO_INCREMENT,
  `doughnut_name` varchar(10) NOT NULL,
  `doughnut_type` varchar(10) NOT NULL DEFAULT 'doughnut',
  PRIMARY KEY (`doughnut_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8
 
자동 증가 

CREATE TABLE `doughnut_list` (
  `doughnut_id` int(11) NOT NULL AUTO_INCREMENT,
  `doughnut_name` varchar(10) NOT NULL,
  `doughnut_type` varchar(10) NOT NULL DEFAULT 'doughnut',
  PRIMARY KEY (`doughnut_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 

'공부 > 데이터베이스' 카테고리의 다른 글

6. 고급 SELECT문  (0) 2011.07.17
5장 ALTER  (0) 2011.07.16
3. DELETE와 UPDATE  (0) 2011.07.16
2장 Select 문  (0) 2011.07.15
1장 데이터와 테이블  (0) 2011.07.14


Posted by skyjumps