스키마
: 데이터의 구조, 제약조건등의 정보를 갖고있는 기본적인 구조
- 외부스키마(External Schema) = 서브스키마
- 사용자나 개발자의 관점에서 필요로하는 데이터베이스의 논리구조
- 사용자뷰를 나타냄
- 개념스키마(Conceptual Schema)
- 데이터베이스의 전체적인 논리적 구조
- 전체적인 뷰를 나타냄
- 개체간의 관계, 제약조건, 접근권한, 무결성, 보안에 대하여 정의함.
- 내부스키마(Internal Schema)
- 물리적 저장장치의 관점에서 보는 데이터베이스 구조
- 실제로 데이터베이스에 저장 될 레코드의 형식을 정의하고,
저장데이터 항목의 표현방법, 내부레코드의 물리적 순서 등을 표현
테이블 = 릴레이션 = 앤티티
: 데이터저장공간
* 식별자 : 여러개의 집합체를 담고있는 관계형 데이터베이스에서 각각 구분할 수 있는 논리적 개념
도메인 (Domain)
: 하나의 속성(튜플)이 가질 수 있는 원자값들의 집합
뷰 (View)
: 하나이상의 물리적 테이블 또는 다른 뷰로부터 파생된 논리테이블
- 특징
* 논리적 데이터 독립성 제공 - DB에 영향을 주지 않고 애플리케이션이 원하는 형태로 데이터에 접근이 가능
* 데이터 조작연산 간소화 - ex)회원테이블에 영향을 주지 않고 우수회원만 뷰로 뽑아 사용하기
* 보안기능(접근제어) - 뷰로 만들어지지 않은 필드는 조회 또는 접근이 불가하다
* 뷰 변경 불가 - 뷰는 Alter가 불가하다(수정하고 싶으면 Drop 후 Create해야 함)
- 사용목적
* 단순 질의어 사용, 단순성, 보안성 향상
- 단점
* 뷰 자체 인덱스 불가, Alter사용 불가, 데이터 변경제약 존재(Select만 가능)
인덱스
: 검색연산의 최적화를 위해 데이터베이스내 값에 대한 주소정보로 구성된 데이터구조이다.
테이블의 특정 레코드 위치를 알려주는 용도로 사용한다.
- 특징
- 기본키 컬럼은 자동으로 인덱스가 생성된다.
- 연월일이나 이름을 기준으로 하는 인덱스는 자동으로 생성되지 않는다.
- 테이블의 컬럼에 인덱스가 없는 경우 전체스캔한다(Full scan) => 느림!
- 인덱스가 있을 때 데이터를 빠르게 찾을 수 있다(인덱스범위스캔)
- where절에 비교되는 컬럼이 인덱스면 검색이 빠르다.
- 종류
* 순차인덱스(ordered) - 데이터가 정렬(sort)된 순서로 인덱스 생성관리 B-Tree 알고리즘을 이용하여 순서를 지정
* 해시인덱스(Hash) - 해시함수에 의해 직접 데이터에 키값으로 접근함. 데이터 접근비용이 균일하고 데이터양에 무관함
*비트맵인덱스(Bitmap) - 변경이 적은 컬럼에 사용하면 유용하다(성별, 직급, 색상 등)
*함수기반인덱스(Function) - 사전에 함수기반으로 인덱스를 설정하면 인덱스 기능 및 속도가 향상된다
*단일인덱스(Singled) - 하나의 컬럼으로만 인덱스 지정,
*결합인덱스(Concatenated)- 여러개의 컬럼을 한번에 인덱스로 지정
* 클러스터인덱스(Cluster) - 저장된 데이터의 물리적 순서에 따라 인덱스 지정
- 스캔방식
* 범위스캔(Range) - 인덱스 루트블록에서 리프블록까지 수직적으로 탐색한 후에 리프블록을 필요한 범위만 스캔
* 전체스캔(Full) - 수직적 탐색 없이 인덱스리프블록을 처음부터 끝까지 수평적으로 탐색하는 방식
* 단일스캔(Unique) - 수직적 탐색만으로 데이터를 찾는 스캔방식
* 생략스캔(Skip) - 선두 컬럼이 조건절에 빠졌어도 인덱스를 활용하는 스캔방식
☆데이터베이스 파일구조
*순차방법 : 레코드들의 물리적 순서가 레코드들의 논리적 순서와 같도록 순차적으로 저장하는 기법
*인덱스방법 : 인덱스가 가리키는 주소를 따라 원하는 레코드에 접근할 수 있도록 하는 방법 <키값, 주소>의 쌍으로 구성
*해싱방법 : 키값을 해시함수에 대입시켜 계산한 결과를 주소로 사용하여 레코드에 접근할 수 있도록 하는 방법
'기타의 기타 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 실기]SQL응용 - 데이터분석함수 (0) | 2023.02.22 |
---|---|
[정보처리기사 실기]SQL응용 - 트랜잭션, 병행제어, 격리수준, 회복기법 (0) | 2023.02.21 |
댓글