Cohe

7-1. SQL 응용 - DDL 본문

자격증 공부/정보처리기사 실기

7-1. SQL 응용 - DDL

코헤0121 2024. 9. 24. 20:58
728x90

1. 데이터 정의어(DDL; Data Definition Language)의 개념

  • 테이블과 같은 데이터 구조를 정의하는 데 사용되는 명령어
  • 특정 구조를 생성, 변경, 삭제, 이름을 바꾸는 데이터 구조

2. DDL의 대상

1. 도메인 (Domain)

  • 속성이 가질 수 있는 원자값들의 집합
  • 데이터 타입, 크기, 제약조건 등의 정보 포함

2. 스키마 (Schema)

  • 데이터베이스의 구조, 제약조건 등을 정의하는 기본 구조
  • 외부/개념/내부 3계층으로 구성
    • 외부 스키마: 사용자 관점의 논리적 구조
    • 개념 스키마: 전체 데이터베이스의 논리적 구조, 관계, 제약조건 등 정의
    • 내부 스키마: 물리적 저장 구조 정의 (sql 문)

3. 테이블 (Table)

  • 데이터를 저장하는 기본 단위
  • 구성 요소:
    • 튜플(Tuple)/행(Row): 레코드를 나타냄
    • 애트리뷰트(Attribute)/열(Column): 필드를 나타냄
    • 기타 개념: 식별자, 카디널리티, 차수, 도메인
      외우는 팁 : 카디널러티 - 튜플, 차수 - 열

 

4. 뷰 (View)

  • 하나 이상의 테이블에서 유도된 가상 테이블
  • 특징:
    • 논리적 데이터 독립성 제공
    • 데이터 조작 연산 간소화
    • 보안 기능(접근 제어) 제공
  • 장단점:
    • 장점: 논리적 독립성, 데이터 관리 용이, 보안 강화
    • 단점: 인덱스 불가, 정의 변경 불가, 데이터 변경 제약

5. 인덱스 (Index)

  • 테이블의 검색 성능을 향상시키는 데이터 구조
  • 특징:
    • 기본 키(PK)에 자동 생성
    • 빠른 데이터 검색 가능(인덱스 범위 스캔)
  • 종류:
    • 순서 인덱스, 해시 인덱스, 비트맵 인덱스
    • 함수기반 인덱스, 단일 인덱스, 결합 인덱스
    • 클러스터드 인덱스

3. DDL 명령어

  • 생성 CREATE 데이터베이스 오브젝트 생성하는 명령어
  • 수정 ALTER 데이터베이스 오브젝트 변경하는 명령어
  • 삭제 DROP 데이터베이스 오브젝트 삭제하는 명령어
  • 삭제 TRUNCATE 데이터베이스 오브젝트 내용 삭제하는 명령어
    • truncate table 테이블이름A; : 내용만 삭제...

4. TABLE 관련 DDL

1. CREATE TABLE

  • 테이블을 생성하는 명령어
  • 기본 구조: CREATE TABLE 테이블명 (컬럼명 데이터타입 [제약조건], ...);
  • 주요 제약조건:
    • PRIMARY KEY: 기본 키 설정
    • FOREIGN KEY: 외래 키 설정
    • UNIQUE: 유일한 값 설정
    • NOT NULL: NULL 값 불허
    • CHECK: 사용자 정의 제약조건
    • DEFAULT: 기본값 설정

2. ALTER TABLE

  • 테이블을 수정하는 명령어
  • 컬럼 추가
    • ALTER TABLE 테이블명 ADD 컬럼명 데이터타입 [제약조건];
  • 컬럼 수정
    • ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입 [제약조건];
  • 컬럼 삭제
    • ALTER TABLE 테이블명 DROP COLUMN 컬럼명;

3. DROP TABLE

  • 테이블을 삭제하는 명령어
  • 기본 구조: DROP TABLE 테이블명 [CASCADE | RESTRICT];
  • 옵션:
    • CASCADE: 참조하는 테이블까지 연쇄적으로 삭제
    • RESTRICT: 다른 테이블이 참조 중이면 삭제하지 않음

5. VIEW 관련 DDL

  • CREATE VIEW
    • CREATE VIEW는 뷰를 생성하는 명령이다.
    • VIEW 테이블의 SELECT 문에는 UNION이나 ORDER BY 절을 사용할 수 없다.
    • 컬럼명을 기술하지 않으면 SELECT 문의 컬럼명이 자동으로 사용된다.
    • CREATE VIEW 뷰이름 AS 조회쿼리;
  • CREATE OR REPLACE VIEW
    • CREATE OR REPLACE VIEW는 뷰를 교체하는 명령이다.
    • OR REPLACE라는 키워드를 추가하는 것을 제외하고는 CREATE VIEW와 사용 방법이 동일하다.
    • CREATE OR REPLACE VIEW 뷰이름 AS 조회쿼리;
  • DROP VIEW
    • DROP VIEW는 뷰를 삭제하는 명령이다:
    • DROP VIEW 뷰이름;

6. INDEX 관련 DDL

  1. CREATE INDEX
    • CREATE INDEX는 인덱스를 생성하는 명령이다.
    • UNIQUE는 생략 가능하고, 인덱스 걸린 컬럼에 중복 값을 허용하지 않는다.
    • 복수 컬럼을 인덱스로 걸 수 있다.
      • CREATE [UNIQUE] INDEX 인덱스명 ON 테이블명(컬럼명 1, 컬럼명2, ...);
  2. ALTER INDEX
    • ALTER INDEX는 인덱스를 수정하는 명령어이다.
    • 일부 DBMS는 ALTER INDEX를 제공하지 않는다.
    • 기존 인덱스를 삭제하고 신규 인덱스를 생성하는 방식으로 사용을 권고 한다.
    • ALTER [UNIQUE] INDEX 인덱스명 ON 테이블명(컬럼명 1, 컬럼명2, ...);
  3. DROP INDEX
    • DROP INDEX는 인덱스를 삭제하는 명령어이다.
      • DROP INDEX 인덱스명;