본문 바로가기
카테고리 없음

정보처리기사 : 인덱스, 뷰, 프로시저

by 스노위13 2023. 4. 6.

1. 인덱스(Index) 
- 정의 : 데이터베이스에서 테이블에 저장된 데이터를 빠르게 검색할 수 있도록 도와주는 자료구조. 
- 특징 : 키값과 포인터의 쌍으로 구성되는 데이터 구조로 테이블의 하나 이상의 열(column)에 대해 생성되며, 특정 값으로 테이블을 검색할 때 그 값이 인덱스에 존재한다면 인덱스를 이용하여 빠르게 검색할 수 있음
- 생성 방법

CREATE INDEX 인덱스명 ON 테이블명 (열1, 열2, ...);

- 예시

출처 : ChatGPT

위 쿼리문은 "members" 테이블의 "name" 열에 대한 인덱스를 "idx_name"이라는 이름으로 생성함.

2. 뷰 
- 정의 : 데이터베이스에서 특정한 쿼리를 실행한 결과를 하나의 가상 테이블로 만들어서, 사용자에게 쉽게 접근하고 활용할 수 있도록 해주는 기능
- 특징 : 테이블과 유사한 구조를 가지지만, 데이터를 별도로 저장하지 않고 쿼리 실행 결과를 이용하여 생성
- 장점 : 원본 테이블을 보호하고, 접근 권한을 제한하여 데이터 보안을 강화
- 생성 방법

CREATE VIEW 뷰명 AS SELECT 컬럼1, 컬럼2, ... FROM 테이블명 WHERE 조건식;

-예시 : "members" 테이블에서 "gender" 열이 "F"인 여성 회원들의 정보만 볼 수 있는 뷰

CREATE VIEW female_members AS SELECT id, name, age, address FROM members WHERE gender = 'F';


3. 프로시저
- 정의 : 하나 이상의 SQL 문들을 묶어서 하나의 논리적인 작업 단위로 정의하고, 필요할 때마다 호출하여 사용할 수 있는 프로그램
- 장점 : 중복되는 코드를 줄일 수 있고, 더욱 효율적인 데이터 처리가 가능
- 생성 방법

CREATE PROCEDURE 프로시저명(매개변수1 데이터형, 매개변수2 데이터형, ...) 
BEGIN 
    SQL 문1; 
    SQL 문2; 
    ... 
END;

- 호출방법

CALL 프로시저명(매개변수1, 매개변수2, ...);

- 예시
1) 생성

출처 : ChatGPT

2) 호출 : 위에서 생성한 "get_members_over30" 프로시저를 호출하여 "age"가 30세 이상인 회원들의 정보를 가져 오기

출처 : ChatGPT

 

댓글