분류 전체보기 61

객체 지향 데이터베이스(OODB)

객체(Object)와 객체 지향 기법의 특징 1) 객체(Object) - 유형이나 무형으로 현실 세계에 존재하는 개체를 추상화한 것으로 서로 구별되는 개념적인 단위를 말한다. - 관계 데이터베이스의 개체(Entity)와 유사하나 개체(Entity)의 개념과 자체적으로 처리 기능을 갖는 연산자까지 포함된 하나의 단위 시스템이다. 복합 객체(Complex Object) - 한 객체가 가지고 있는 속성으로 다른 객체를 이용하기 위한 것으로 관계 데이터베이스의 외래키(Foreign Key)와 유사한 개념이다. 2) 속성(Attribute) - 객체의 특성이나 상태를 나타내며, 관계 데이터베이스의 속성과 유사한 개념이다. 3) 메시지(Message)와 메소드(Method) - 메시지는 객체에 어떤 처리를 하도록 ..

인덱스(INDEX)

인덱스(INDEX) - 수많은 데이터 중에서 원하는 자료를 빠르고 효율적으로 검색하기 위해서 사용하는 방법을 말한다. - 기본적으로 데이터의 위치(주소)를 관리/기억하는 인덱스 파일(Index File)과 실제 데이터를 기억하는 데이터 파일(Data File)로 구성된다. - 데이터를 검색할 때는 먼저 인덱스 파일에서 데이터의 주소를 찾는다. 이어서 데이터 파일에서 인덱스 파일에서 찾은 주소의 데이터를 검색하게 된다. - 인덱스 파일(Index File)은 [키 값, 주소]의 두 가지 정보로 구성된다. 키 값 : 인덱스를 만들 때 사용된 속성의 값. 주소 : 실제로 자료가 저장된 위치. 인덱스 구조 1) B-트리(Balanced Tree) - 검색의 효율을 높이기위해 자료의 구조를 균형 있는 트리 구조로..

회복 기법과 병행 제어

회복 - 여러 가지 요인으로 인해 손상된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구시키는 작업을 말한다. - 회복을 위해 로그(Log)를 이용한다. 로그(Log) : 트랜잭션이 수행되어 변경되는 데이터베이스의 상황 정보를 기록하는 것으로, 트랜잭션이 수행되기 이전 값과 수행된 이후 값 모두 기록된다. 이와 같은 정보를 담고 있는 파일을 로그파일(Log File)이라고 한다. 1) 회복 기법 즉시 갱신 기법 - 트랜잭션이 실행(활동) 상태에서 변경되는 내용을 바로 데이터베이스에 적용하는 기법. - 변경되는 모든 내용은 로그(Log)에 기록하여 장애 발생 시 로그(Log)의 내용을 토대로 회복시킴. 지연 갱신 기법 - 트랜잭션이 수행되어 부분 완료가 될 때까지 데이터베이스에 적용하지 않고 지연시킨 ..

트랜잭션(Transaction)

트랜잭션(Transaction) - 데이터베이스 내에서 한꺼번에 모두 수행되어야 할 연산들의 집합으로 하나의 작업 처리를 위한 논리적 작업 단위를 말한다. - 트랜잭션 내의 연산은 한꺼번에 완료되어야 하며 그렇지 못한 경우 모두 취소되어야 한다. 트랜잭션의 성질(=ACID 성질) 원자성(Atomicity) - 트랜잭션의 가장 기본적인 특성으로 트랜잭션 내의 연산은 반드시 모두 수행되어야 하며 그렇지 않은 경우 모두 수행되지 않아야 함. 일관성(Consistency) - 트랜잭션이 정상적으로 완료된 후 언제나 일관성 있는 데이터베이스 상태가 되어야하며, 결과에 모순이 생겨서는 안 됨. 격리성(Isolation) - 독립성이라고도 하며, 하나의 트랜잭션이 수행 중에는 다른 트랜잭션이 접근할 수 없고 각각의 ..

내장 SQL과 커서(Cursor)

내장 SQL(Embedded-SQL) - 삽입 SQL이라고도 하며, 일반 응용 프로그램에 SQL을 삽입하여 데이터베이스 자료를 이용하고 다양한 조작을 할 수 있도록 한 것이다. - 즉, 응용 프로그램이 실행될 때 같이 실행되도록 호스트 프로그램 언어에 삽입된 SQL을 말한다. 호스트 프로그램 언어 : 응용 프로그램을 작성할 때 사용되는 C, C++, Visual Basic 등의 언어를 의미한다. 1) 내장 SQL의 특징 - EXEC SQL문으로 시작하여 세미콜론(;)으로 종료한다. - 호스트 프로그램 실행 시 같이 실행된다. - 일반 SQL문은 실행 후 결과값으로 여러 자료(튜플)을 얻을 수 있지만 내장 SQL은 하나의 자료(튜플)만 얻을 수 있다. - 호스트 언어에 데이터베이스의 자료를 불러와 기억하기..

역정규화

역정규화 - 정규화된 릴레이션은 원래 하나의 릴레이션을 분해하다 보니 원하는 자료가 하나의 릴레이션에 존재하지 않아 외래키를 이용해 자주 참조하는 현상이 발생한다. 따라서 정규화된 릴레이션은 실제로 자료를 검색하는 과정에서 성능 저하를 가져올 수 있다. - 역정규화는 정규화된 릴레이션을 물리적 데이터 모델링 과정에서 성능을 향상시키기 위해 중복을 허용하더라도 다시 통합하거나 분할하여 구조를 재조정하는 것을 말한다. ex) 수강(학번, 전공, 담당교수) 학생(학번, 전공), 교수(전공, 담당교수) 역정규화의 종류 1) 릴레이션 역정규화 - 두 릴레이션을 합하거나 하나의 릴레이션을 분할하는 방법이 있다. 1.1) 릴레이션 병합 - 두 릴레이션 간의 잦은 데이터 참조로 성능이 저하되는 문제점을 해결하기 위해 ..

정규화(Normalization)

정규화(Normalization) - 논리적 설계 단계에서 발생할 수 있는 종속으로 인한 이상(Anomaly) 현상의 문제점을 해결하기 위해, 속성들 간의 종속 관계를 분석하여 여러 개의 릴레이션으로 분해하는 과정. - 종류 : 제1정규형, 제2정규형, 제3정규형, BCNF, 제4정규형, 제5정규형 정규형의 종류 1) 제1정규형(1NF : First Normal Form) - 한 릴레이션을 구성하는 모든 도메인이 원자값(Atomic Value)만으로 구성되도록 하는 정규형을 말한다. ex) - 데이터베이스에서는 검색, 삽입, 삭제 등 여러 가지 작업이 튜플 단위로 이루어지기 때문에 '박순신' 회원과 '김길동' 회원과 같이 튜플을 하나로 합쳐서 표현하면 원할하게 수행되지 못한다. 회원 테이블 회원번호 성명..

이상(Anomaly)과 함수적 종속

이상(Anomaly) - 데이터베이스의 논리적 설계 시 하나의 릴레이션에 많은 속성들이 존재하여, 데이터의 중복과 종속으로 인해 발생되는 문제점을 말한다. 릴레이션을 처리하는데 여러 가지 문제를 초래하게 된다. - 이상의 종류에는 삭제 이상, 삽입 이상, 갱신 이상이 있다. 1) 삭제 이상(Deletion Anomaly) - 테이블에서 하나의 자료를 삭제하고자 하는 경우 그 자료가 포함된 튜플이 삭제됨으로 인해 원하지 않은 자료까지 함께 삭제가 이루어져 발생하는 문제점을 말한다. 2) 삽입 이상(Insertion Anomaly) - 삽입하는 과정에서 원하지 않는 자료가 삽입된다든지 삽입하는데 자료가 부족해 삽입이되지 않아 발생하는 문제점을 말한다. 3) 갱신 이상(Update Anomaly) - 정확하지..

뷰(VIEW)와 시스템 카탈로그

뷰(VIEW) - 하나 이상의 테이블로부터 유도되어 만들어진 가상 테이블. - 처리 과정 중의 내용이나 기본 테이블 중 일부 내용을 검색해 보여주거나 별도로 관리하고자 하는 경우 사용하는 임시 테이블. - 실제 물리적으로 기억공간을 차지하지 않으며, 논리적 독립성을 제공하고, 데이터 접근제어로 보안성을 향상시킨다. 1) 뷰(VIEW)의 생성 - 뷰(VIEW)를 생성하기 위해서는 CREATE 명령문을 이용한다. CREATE VIEW 뷰명[(뷰_속성명)] AS SELECT 기본테이블의 속성명 FROM 기본테이블명 [WHERE 조건] [WITH CHECK OPTION]; CREATE VIEW - 뷰의 이름과 뷰를 구성할 속성 이름 기입. AS SELECT - 뷰를 만들기 위한 기본 테이블의 속성 이름 기입. ..

SQL 제어어(DCL : Data Control Language)

- 관리자가 데이터의 보안, 무결성 유지, 병행제어, 회복 등을 하기 위해 사용하는 언어를 말한다. - 종류 : COMMIT, ROLLBACK, CRANT, REVOKE 등이 있다. SQL 제어어의 종류 1) COMMIT - 데이터베이스 내의 연산이 성공적으로 종료되어 연산에 의한 수정 내용을 지속적으로 유지하기 위한 명령어를 말한다. 2) ROLLBACK - 데이터베이스 내의 연산이 비정상적으로 종료되거나 정상적으로 수행이 되었다 하더라도 수행되기 이전 상태로 되돌리기 위해 연산 내용을 취소할 때 사용하는 명령어를 말한다. 3) GRANT - 관리자가 사용자에게 데이터베이스에 대한 권한을 부여하기 위한 명령어이다. GRANT 권한 내용 ON 테이블명 TO 사용자 [WITH GRANT OPTION]; G..