728x90
데이터베이스 설계 및 구현 - [제6강] 데이터베이스의 정의 2
테이블 생성 및 관리 ․인덱스의 사용
데이터베이스 용어정리
요점정리
- 1. CREATE 문은 스키마, 테이블, 인덱스, 뷰 등의 개체를 생성하기 위한 SQL문이다. ALTER 문은 CREATE 문에 의해 생성된 개체를 수정하는 것으로 항목의 추가나 삭제 등 구조 변경의 경우에 사용되거나, 기존의 개체에 제약조건 추가 및 삭제하기 위해 사용된다. DROP 문은 개체를 제거하는 데에 이용된다.
- 2. 테이블 생성은 CREATE TABLE 문을 이용하며, 기존 테이블의 구조는 ALTER TABLE 문을 이용하여 언제든지 수정이 가능하다. 또한 테이블은 DROP TABLE 문으로 삭제할 수 있다.
- 3. 테이블 생성 및 수정시 컬럼에 7 가지의 제약조건을 정의할 수 있다. PRIMARY KEY는 기본키를 정의, NOT NULL은 컬럼값을 의무적으로 입력, UNIQUE는 동일한 컬럼값 존재할 수 없다는 제약, AUTO_INCREMENT는 자동 증가, DEFAULT는 기본값, FOREIGN KEY는 외래키, CHECK는 컬럼값을 한정하는 기능이 있다.
- 4. 인덱스는 DBMS에 의해 데이터 파일 내의 특정 레코드를 빠르게 찾을 수 있도록 하는 것으로 인덱스를 통하여 질의를 수행하면 응답시간이 향상된다.
- 5. MySQL Server에서 지원하는 인덱스는 주로 BTREE 계열의 인덱스이며, 제약조건에 의해 자동적으로 생성하는 방법이 있으며, 사용자에 의해 명시적으로 생성할 수도 있다. 생성된 인덱스는 SHOW INDEX 문을 이용하여 확인할 수 있다.
연습문제
-
CREATE TABLE 문에서 컬럼 정의 시 기술하는 항목이 아닌 것은?
- 정답 :
-
③
- CREATE TABLE 문에서 각 컬럼 정의에는 컬럼 이름, 데이터 타입, 제약조건이 기술된다. 사용엔진 이름은 CREATE TABLE 문의 마지막에 적용되어 각각의 특징이 있는 엔진(기본값은 InnoDB) 중에서 사용되는 엔진을 선택할 수 있다.
-
학생 테이블에 데이터 타입은 CHAR(20), NULL 허용인 종교 컬럼을 추가하기 위해 다음 빈칸에 알맞은 말은 무엇인가?
ALTER TABLE 학생
종교 CHAR(20) NULL- 정답 :
-
④
- 새로운 컬럼을 추가하는 것 또한 테이블을 수정하는 것이므로 ALTER TABLE 문이 사용된다. 새로운 컬럼 추가 시에는 ‘ADD COLUMN 컬럼명 데이터타입 제약조건’의 절이 ALTER TABLE문 뒤에 붙는다.
-
사용자가 직접 컬럼값을 입력하지 않고도 레코드가 추가될 때마다 서버에서 자동적으로 값을 계산하여 입력하기를 원할 때 사용하는 제약조건은 무엇인가?
- 정답 :
-
③
- AUTO_INCREMENT는 특별한 의미가 없이 단순히 일련번호와 같은 역할을 의미하는 컬럼값이 사용되어 레코드 입력 시 마지막으로 입력되었던 값에 1을 증가시켜 자동으로 값을 입력한다. INT와 같이 숫자 데이터 타입에 적용이 가능하며, 사용자에 의해 임의의 값이 입력될 수도 있다.
-
CHECK 제약조건은 MySQL에서 아직 지원되지 않는다. CHECK 제약조건의 기능을 일부 대체할 수 있는 데이터 타입은 무엇인가?
- 정답 :
-
①
- MySQL은 CHECK 절이 포함된 SQL문에 대해 파싱(parsing: SQL문을 문법적 단어마다 분류하여 인식하는 과정)시 오류로 판단하지 않지만 CHECK 절에 대한 기능을 지원하지 않아 실행되지 않는다. 따라서 컬럼값을 특정한 값으로만 한정하기 위해서 ENUM 데이터 타입이 사용된다.
-
KNOU 스키마에 포함된 학생 테이블의 인덱스 목록을 확인하기 위한 구문으로 올바른 것은?
- 정답 :
-
②
- 인덱스를 생성하기 전에 인덱스의 목록을 확인해야한다. 특정 테이블에 인덱스 목록을 출력하는 구분의 구문형식은 ‘SHOW INDEX FROM 테이블 이름 [FROM 스키마 이름]’이다. FROM 스키마 이름 절은 생략이 가능하며 현재 작업스키마가 아닌 다른 스키마에 존재하는 테이블의 인덱스 목록을 출력하고 싶을 때 사용한다.
-
다음 중 강의 테이블의 강의이름 컬럼에 정의된 idx_강의_1이라는 인덱스를 삭제하기 위한 구문으로 올바른 것은?
- 정답 :
-
④
- 인덱스를 삭제하는 SQL은 DROP INDEX문이고 DROP INDEX문에는 인덱스의 이름과 테이블이 포함되어 ‘DROP INDEX 인덱스이름 ON 테이블명’의 문법형식을 갖는다.
'컴퓨터과학[3-2] > D.B' 카테고리의 다른 글
데이터베이스 설계 및 구현 - [제8강] 데이터 조작언어 2 (0) | 2016.07.31 |
---|---|
데이터베이스 설계 및 구현 - [제7강] 데이터 조작언어 1 (0) | 2016.07.31 |
데이터베이스 설계 및 구현 - [제5강] 데이터베이스 정의 1 (0) | 2016.07.30 |
데이터베이스 설계 및 구현 - [제4강] 요구사항 분석 및 데이터베이스 설계 2 (0) | 2016.07.30 |
데이터베이스 설계 및 구현 - [제3강] 요구사항 분석 및 데이터베이스 설계 1 (0) | 2016.07.30 |
댓글