데이터를 어떻게 사용할 것인가에 따라 테이블을 만든다.
SQL은 관계형 데이터베이스 관리시스템(RDBMS)를 위한 언어.
관계형은 여러 테이블의 열들의 관계.
테이블을 잘 설계하려면 정보를 나타낼 때 여러 테이블 사이의 열들이 서로 어떠한 관계에 있는지를 고려해야 한다.
테이블 생성 과정.
쪼개는 방식
원자적으로 쪼갠다.
효율적인 테이블을 만드는데 필요한 한도 내에서 가능하면 작은 조각으로 나눠야 한다.
쿼리가 짧아지고 정확해진다.
원자적 데이터에 대한 규칙
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;
자동 증가
SQL은 관계형 데이터베이스 관리시스템(RDBMS)를 위한 언어.
관계형은 여러 테이블의 열들의 관계.
테이블을 잘 설계하려면 정보를 나타낼 때 여러 테이블 사이의 열들이 서로 어떠한 관계에 있는지를 고려해야 한다.
테이블 생성 과정.
1. 테이블로 표현하려는 것을 찾는다.
2. 테이블을 사용할 때, 표현하려는 것에 대한 정보들의 리스트를 만든다.
3. 리스트를 이용해서 그 정보들을 조각들로 쪼개고, 조각들은 테이블을 잘 만드는데 이용된다.
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 |