728x90
728x90
DDL, DCL 개념 및 사용 방법
데이터 정의어(DDL : Data Definition Language)의 개념
테이블과 같은 데이터 구조를 정의할 때 사용되는 명령어들로 특정 구조의 생성, 변경, 삭제와 관련된 명령어
DDL의 대상
도메인(Domain)
하나의 속성이 가질 수 있는 원자값들의 집합
스키마
데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조
- 외부 스키마(External Schema) : 사용자나 개발자의 관점에서 필요로 하는 데이터베이스의 논리적 구조
- 개념 스키마(Conceptual Schema) : 데이터베이스의 전체적인 논리적 구조
- 내부 스키마(Internal Schema) :물리적 저장장치의 관점에서 보는 데이터베이스 구조
테이블
데이터를 저장하는 항목인 필드(Field)들로 구성된 데이터의 집합체로 릴레이션(Relation) 혹은 엔터티(Entity)라고도 불린다.
- 튜플(Tuple) / 행(Row) : 테이블 내의 행을 의미하며 레코드(Record)라고도 한다.
- 애트리뷰트(Attribute) / 열(Colunm) : 테이블 내의 열을 의미
- 식별자(Identifier) : 관계형 데이터베이스에서 각각의 구분을 할 수 있는 논리적인 개념
- 카디널리티(Cardinality) : 튜플(Tuple)의 개수
- 차수(Degree) : 애트리뷰트(Attribute)의 개수
- 도메인(Domain) : 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자값 들의 집합
뷰
논리 테이블로 사용자 관점에서는 테이블과 동일하다.
뷰를 사용하는 주된 이유는 단순 질의어를 사용할 수 있기 때문이다.
뷰의 특징
- 논리적 데이터 독립성 제공
- 데이터 조작 연산 간소화
- 보안 기능 제공
- 뷰 변경 불가
뷰의 장점
- 논리적 독립성 제공
- 사용자 데이터 관리 용이
- 데이터 보안의 용이
뷰의 단점
- 뷰 자체 인덱스 불가
- 뷰 정의 변경 불가
- 데이터 변경 제약 존재
인덱스
검색 연산의 최적화를 위해 데이터베이스 내 값에 대한 주소 정보로 구성된 데이터 구조
인덱스는 데이터를 빠르게 찾을 수 있는 수단으로 테이블의 특정 레코드 위치를 알려주는 용도로 사용되는 자료구조이다.
- 순서 인덱스(Ordered Index) : 데이터가 정렬된 순서로 생성되는 인덱스
- 해시 인덱스(Hash Index) : 해시 함수에 의해 직접 데이터에 키 값으로 접근하는 인덱스
- 비트맵 인덱스(Bitmap Index) : 각 컬럼에 적은 개수 값이 저장된 경우 선택하는 인덱스
- 함수기반 인덱스(Functional Index) : 수식이나 함수를 적용하여 만든 인덱스
- 단일 인덱스(Singled Index) : 하나의 컬럼으로만 구성한 인덱스
- 결합 인덱스(Concatenated Index) : 두 개 이상의 컬럼으로 구성한 인덱스
- 클러스터드 인덱스(Clustered Index) : 기본 키 기준으로 레코드를 묶어서 저장하는 인덱스
인덱스 스캔 방식
- 인덱스 범위 스캔(Index Range Scan) : 인덱스 루트 블록에서 리프 블록까지 수직적으로 탐색 한 후 리프블록을 필요한 범위만 스캔하는 방식
- 인덱스 전체 스캔(Index Full Scan) : 수직적 탐색 없이 인덱스 리프 블록을 처음부터 끝까지 수평적으로 탐색하는 방식
- 인덱스 단일 스캔(Index Unique Scan) : 수직적 탐색만으로 데이터를 찾는 스캔 방식
- 인덱스 생략 스캔(Index Skip Scan) : 선두 컬럼이 조건 절에 빠졌어도 인덱스를 활용하는 스캔 방식
데이터 조작어(DML : Data Manipulation Language)의 개념
데이터베이스에 저장된 자료들을 입력, 수정, 삭제, 조회하는 언어
SELECT 명령어
- SELECT절 : 검색하고자 하는 속성명, 계산식을 기술
- FROM절 : 질의에 의해 검색될 데이터들을 포함하는 테이블명을 기술
- WHERE절 : 검색할 조건을 기술
- GROUP BY절 : 속성값을 그룹으로 분류하고자 할 때 사용
- HAVING절 : GROUP BY에 의해 분류한 후 그룹에 대한 조건 지정
- ORDER BY절 : 속성값을 정렬하고자 할 때 사용
조인(Join)
- 내부 조인(Inner Join) : 공통 존재 컬럼의 값이 같은 경우를 추출하는 기법
- 왼쪽 외부 조인(Left Outer Join) : 왼쪽 테이블의 모든 데이터와 오른쪽 테이블의 동일 데이터를 추출하는 기법
- 오른쪽 외부 조인(Right Outer Join) : 오른쪽 테이블의 모든 데이터와 왼쪽 테이블의 동일 데이터를 추출하는 기법
- 교차 조인(Cross Join) : 양쪽의 모든 데이터를 추출하는 기법
- 셀프 조인(Self Join) : 자기 자신에게 별칭을 지정한 후 다시 조인하는 기법
서브쿼리(Sub-Query)
SQL 문 안에서 포함된 또 다른 SQL문
알려지지 않은 기준을 위한 검색을 위해 사용된다.
- FROM절 서브쿼리 : 서브쿼리가 FROM절 안에 들어있는 형태로 인라인 뷰(Inline View)라고 불림
- WHERE절 서브쿼리 : 서브쿼리가 WHERE절 안에 들어있는 형태로 중첩 서브쿼리(Nested Sub-Query)라고 불림
집합 연산자(Set Operator)
테이블을 집합 개념으로 보고 두 테이블 연산에 집합 연산자를 사용하는 방식
- UNION : 중복 행이 제거된 쿼리 결과를 반환하는 집합 연산자
- UNION ALL : 중복 행이 제거되지 않은 쿼리 결과를 반환하는 집합 연산자
- INTERSECT : 두 쿼리 결과에 공통적으로 존재하는 결과를 반환하는 연산자
- MINUS : 첫 쿼리에 있고 두 번째 쿼리에는 없는 결과를 반환하는 집합 연산자
INSERT 명령어
데이터의 내용을 삽입할 때 사용하는 명령어
UPDATE 명령어
데이터의 내용을 변경할 때 사용하는 명령어
DELETE 명령어
데이터의 내용을 삭제할 때 사용하는 명령어
데이터 조작어(DCL : Data Control Language)의 개념
데이터베이스 관리자가 데이터 보안, 무결성 유지, 병행 제어, 회복을 위해 사용하는 제어용 언어
GRANT
관리자가 사용자에게 데이터베이스에 대한 권한을 부여하는 명령어
REVOKE
관리자가 사용자에게 부여했던 권한을 회수하기 위한 명령어
728x90
반응형
'CS' 카테고리의 다른 글
절차형 SQL (0) | 2023.04.07 |
---|---|
응용 SQL (0) | 2023.04.07 |
트랜잭션 (0) | 2023.04.06 |
연계 모듈 구현 환경 구성 및 개발 (0) | 2023.04.05 |
데이터베이스 기술 트랜드 (0) | 2023.04.05 |
댓글