데이터 타입(Data Type)이란? 데이터베이스는 다양한 종류의 데이터를 저장하고 관리한다. 따라서 이 데이터를 어떤 형식 혹은 형태로 저장할지 결정해야 한다. 이처럼 데이터베이스에서 데이터 타입이란 데이터가 저장되는 형식 혹은 형태를 뜻한다. 오라클에서의 데이터 타입도 마찬가지로 데이터가 저장되는 형식 혹은 형태를 의미한다. 오라클에서는 문자형, 날짜, 숫자 등 다양한 기본 데이터 타입을 지원한다. 사용자는 이러한 기본 데이터 타입을 혼합하여 사용자 정의 데이터 타입을 만들 수도 있다. 오라클에서 지원하는 기본 데이터 타입(Oracle Built-in Data Types)은 다음과 같다. 문자 데이터 타입(Character Data Types) 문자 데이터 타입은 문자(character) 혹은 자유 ..
클러스터링(Clustering)이란? 클러스터링은 동일한 데이터베이스를 여러 대의 서버가 관리하도록 클러스터를 구축하는 것을 뜻한다. 이러한 클러스터링은 Active-Active 방식과 Active-StandBy 방식이 있다. 클러스터링을 하는 이유 [그림 1]과 같이 모든 DB 서버가 Active 상태면 하나의 서버에 이상이 생기더라도 바로 다른 서버를 이용해 정상적인 서비스 운영이 가능하다. 또한 클러스터링을 이용하게 되면 기존에 하나의 서버에 몰리던 부하를 여러 곳으로 분산시킬 수 있다. 즉, 로드밸런싱(Load Balancing)이 가능해진다. 클러스터링의 단점 하지만 클러스터링은 여러 대의 서버가 데이터베이스를 공유하므로 병목현상이 발생해 더 많은 비용이 발생할 수 있다. 특히, Active-A..
시스템 카탈로그란? 1. DBA의 도구로서 데이터베이스에 저장되어 있는 모든 데이터 개체들에 대한 정의나 명세에 대한 정보를 수록한 시스템 테이블이다. 2. 하나의 작은 데이터베이스 데이터 사전(Data dictionary)라고도 한다. 3. DDL의 결과로 생성되는 기본 테이블, 뷰, 인덱스, 데이터베이스, 접근 권한 등의 데이터베이스 구조 및 성능 평가를 위한 통계정보도 저장한다. 4. 데이터베이스의 스키마 정보, 스키마들 간의 사상 정보, DBMS의 특정 모듈을 필요로 하는 정보를 저장한다. 5. 시스템 카탈로그에 저장된 내용을 메타 데이터(Meta Data)라고 한다. + 스키마가 무엇인지 모른다면 다음을 참고하자. [DB] 스키마(Schema)란? 외부스키마, 개념스키마, 내부스키마 스키마(Sc..
데이터베이스 옵티마이저란? 옵티마이저는 SQL을 가장 빠르고 효율적으로 수행할 최적의 처리경로를 생성해 주는 DBMS 내부의 핵심 엔진이다. 사용자가 구조화된 질의어(SQL)로 결과 집합을 요구하면, 이를 생성하는데 필요한 처리경로는 DBMS에 내장된 옵티마이저가 자동으로 생성해준다. 옵티마이저가 생성한 SQL 처리경로를 실행계획(Execution Plan)이라고 한다. 옵티마이저의 SQL 최적화 과정은 다음과 같다. 1. 사용자가 던진 쿼리 수행을 위해, 후보군이 될만한 실행계획을 찾는다. 2. 데이터 딕셔너리(Data Dictionary)에 미리 수집해 놓은 오브젝트 통계 및 시스템 통계정보를 이용해 각 실행계획의 예상 비용을 산정한다. 3. 각 실행계획을 비교하여 최저비용을 갖는 하나를 선택한다. ..
관계 대수란? 관계 대수는 관계형 데이터베이스에서 원하는 정보를 검색하기 위해 어떻게 유도하는가(how)를 기술하는 절차적인 언어이다. 즉, 관계 대수는 릴레이션을 처리하기 위해 연산자와 연산 규칙을 제공하는 언어로, 피연산자가 릴레이션이고 결과 또한 릴레이션이다. 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시한다. 대표적으로 순수 관계 연산자와 일반 집합 연산자가 있다. 1. 순수 관계 연산자 순수 관계 연산자란 관계 데이터 베이스에 적용할 수 있도록 특별히 개발한 관계 연산자를 말한다. 아래와 같은 연산자들이 존재한다. 1) Select select는 릴레이션에 존재하는 튜플 중에서 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션을 만든다. 릴레이션의 행에 해당하는 튜플..
스키마(Schema)란? 스키마는 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한 것이다. 스키마는 데이터베이스를 구성하는 데이터 개체(Entity), 개체의 특성을 나타내는 속성(Attribute), 개체 사이에 존재하는 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관하여 기술한다. 쉽게 말해 DB 내에 데이터가 어떤 구조로 저장되는가를 나타내는 데이터베이스 구조를 스키마라고 한다. 스키마의 특징 1. 스키마는 데이터 사전(Data Dictionary)에 저장되며, 다른 이름으로 메타데이터(Meta Data)라고도 한다. -> 데이터 사전 : 시스템 전체에서 나타나는 데이터 항목들에 대한 정보를 지정한 중앙 저장소 2. 스키마는 현실 세계의 특정한 ..
트랜잭션(Transaction)이란? 트랜잭션은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 수행되어야할 일련의 연산들을 의미한다. 트랜잭션은 작업의 완전성을 보장해준다. 즉, 논리적인 작업 셋을 모두 완벽하게 처리하거나 또는 처리하지 못할 경우에는 원 상태로 복구해서 작업의 일부만 적용되는 현상이 발생하지 않게 만들어주는 기능이다. 사용자의 입장에서는 작업의 논리적 단위로 이해를 할 수 있고 시스템의 입장에서는 데이터들을 접근 또는 변경하는 프로그램의 단위가 된다. 트랜잭션은 SELECT, UPDATE, INSERT, DELETE와 같은 연산을 수행하여 데이터베이스의 상태를 변화시키는 작업의 단위다. 트랜잭션의 특징(ACID) Atomicity(원자성)..
이상현상이란? 삽입 이상(Insertion Anomaly) : 튜플 삽입 시 특정 속성에 해당하는 값이 없어 NULL을 입력해야 하는 현상 삭제 이상(Deletion Anomaly) : 튜플 삭제 시 같이 저장된 다른 정보까지 연쇄적으로 삭제되는 현상 갱신 이상(Update Anomaly) : 튜플 갱신 시 중복된 데이터의 일부만 갱신되어 일어나는 데이터 불일치 현상 함수 종속성(FD : Functional Dependency)이란? 함수 종속성은 어떤 속성 A의 값을 알면 다른 속성 B의 값이 유일하게 정해지는 관계를 종속성이라고 한다. A->B로 표기하며 A를 B의 결정자(Determinant)라고 한다. A->B이면 A는 B를 결정한다(Determine) 한다고 하고, B는 A에 종속한다(Depen..
인덱스(index)란? 인덱스란 데이터베이스 테이블의 검색 속도를 향상하기 위한 자료구조라고 할 수 있다. 책의 색인(index)을 보면 해당 내용이 어디에 있는지 알 수 있듯이 데이터의 인덱스를 참조하면 데이터가 저장된 레코드의 주소를 알 수 있는 것이다. DBMS는 데이터베이스 테이블의 모든 데이터를 검색해서 원하는 결과를 가져오기에는 시간이 너무 많이 걸리므로 칼럼의 값과 해당 레코드가 저장된 주소를 키와 값의 쌍으로 인덱스를 만들어둔다. DBMS의 인덱스는 항상 정렬된 상태를 유지하기 때문에 원하는 값을 탐색하는 데는 빠르지만 새로운 값을 추가하거나 삭제, 수정하는 경우에는 쿼리문 실행 속도가 느려진다. 결론적으로 DBMS에서 인덱스는 데이터의 저장 성능을 희생하고 데이터의 읽기 속도를 높이는 기..
데이터베이스란? 데이터베이스(Database)는 통합 관리되는 데이터들의 집합을 뜻한다. 데이터베이스를 사용하는 이유는 뭘까? 다음과 같은 이유들을 들 수 있겠다. 데이터 공유 : 많은 사람들이 데이터를 공유할 수 있다. 중복의 제거 : 데이터를 한 곳에 모으면서 중복되는 데이터를 제거할 수 있다. 데이터 통합 : 흩어져 있는 데이터를 한 곳에 모을 수 있다. 보안성 : 권한이 있는 관리자만이 데이터를 관리한다면 데이터의 보안을 지킬 수 있다. 이외에도 다양한 이점이 있다. DBMS(DataBase Management System)란? DBMS는 데이터베이스 관리 시스템으로 데이터베이스 내의 데이터에 접근할 수 있도록 하는 소프트웨어들을 의미한다. DBMS는 어떻게 탄생하게 됐을까? DBMS 이전에는 파..