본문 바로가기

데이터베이스

[DB] 보안(Security) 1. 데이터베이스 보안의 개요- 데이터베이스 보안이란 데이터베이스의 일부분 또는 전체에 대해서 권한이 없는 사용자가 액세스 하는 것을 금지하기 위해 사용하는 기술이다.- 보안을 위한 데이터 단위는 테이블 전체로부터 특정 테이블의 특정한 행과 열 위치에 있는 특정한 데이터 값에 이르기까지 다양하다.- 데이터베이스 사용자들은 일반적으로 서로 다른 객체에 대하여 다른 접근권리 또는 권한을 갖게된다.- 데이터베이스 보안 기법에는 암호화 기법, 권한 부여 기법이 있으며, 권한 부여 기법에는 뷰(View) 기법, GRANT/REVOKE 기법이 있다. 2. 암호화 기법1) 암호화 과정- 암호화(Encryption) 과정 : 암호화되지 않은 평문을 정보 보호를 위해 암호문으로 바꾸는 과정- 복호화(Decryption).. 더보기
[DB] 무결성(Integrity) 1. 무결성이란- 무결성이란 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제값이 일치하는 정확성을 의미한다. 2. 무결성을 유지하는 방법- 대표적으로 사용되는 방법은 중앙 통제에 의한 데이터 갱신으로서, 이 방법은 검증 프로그램을 이용하여 모든 갱신 처리 과정에서 반드시 검증 단계를 거치도록 통제를 가한다.- 검증 프로그램이 무결성을 검증하기 위해 무결성 규정을 사용한다.- 규정 이름 : 무결성 규정을 참조할 때 사용하는 식별자- 트리거(Trigger) 조건 : 트랜잭션의 접근 유형 및 데이터, 검사할 시기 명시- 프레디킷(제약 조건) : 무결성을 위한 검사 조건- 위반 조치 : 검사 결과 무결성 위반이 발견되었을 때 처리할 조치 3. 무결성의 종류- 널 무결성 : 릴레이션의 특정 속.. 더보기
[DB] 병행제어(Concurrency Control) 1. 병행제어의 정의- 병행제어(Concurrency Control)란 다중 프로그램의 이점을 활용하여 동시에 여러 개의 트랜잭션을 병행수행할 때, 동시에 실행되는 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록 트랜잭션 간의 상호작용을 제어하는 것이다. 2. 병행제어의 목적- 데이터베이스의 공유를 최대화한다.- 시스템의 활용도를 최대화한다.- 데이터베이스의 일관성을 유지한다.- 사용자에 대한 응답시간을 최소화한다. 3. 병행수행의 문제점- 병령제어 기법에 의한 제어 없이 트랜잭션들이 데이터베이스에 동시에 접근하도록 허용할 경우 다음과 같은 문제점이 발생한다.- 갱신 분실(Lost Update) : 두 개 이상의 트랜잭션이 같은 자료를 공유하여 갱신할 때 갱신 결과의 일부가 없어지는 현상- 비완료 의.. 더보기
[DB] 트랜잭션의 개념 1. 트랜잭션의 정의- 트랜잭션(Transaction)은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다.- 트랜잭션은 데이터베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위이다.- 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업 단위이다.- 하나의 트랜잭션은 Commit되거나 Rollback된다. 2. 트랜잭션의 특징- 다음은 데이터의 무결성(Integrity)을 보장하기 위하여 DBMS의 트랜잭션이 가져야 할 특성이다. 1) Atomicity(원자성)- 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료(Commit)되든지 아니면 전혀 반영되지 않.. 더보기
[DB] 시스템 카탈로그 1. 시스템 카탈로그(System Catalog)의 의미- 시스템 카탈로그는 시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스이다.- 시스템 카탈로그 내의 각 테이블은 사용자를 포함하여 DBMS에서 지원하는 모든 데이터 객체에 대한 정의나 명세에 관한 정보를 유지 관리하는 시스템 테이블이다.- 데이터 정의어의 결과로 구성되는 기본 테이블, 뷰, 인덱스, 패키지, 접근 권한 등의 데이터베이스 구조 및 통계 정보를 저장한다.- 카탈로그들이 생성되면 자료 사전에 저장되기 때문에 좁은 의미로는 카탈로그를 자료 사전이라고도 한다.- 카탈로그에 저장된 정보를 메타 데이터라고 한다. 2. 카탈로그의 특징- 카탈로그 자체도 시스템 테이블로 구성되어 있어 일반 이용자도 SQL을 이용하.. 더보기
[DB] 뷰(View) 1. 뷰(View)의 개요- 뷰는 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블이다.- 뷰는 저장장치 내에 물리적으로 존재하지 않지만, 사용자에게는 있는 것처럼 간주된다.- 뷰는 데이터 보정작업, 처리과정 시험 등 임시적인 작업을 위한 용도로 활용된다.- 뷰는 조인문의 사용 최소화로 사용상의 편의성을 최대화한다. 2. 뷰(View)의 특징- 뷰는 기본 테이블로부터 유도된 테이블이기 때문에 기본 테이블과 같은 형태의 구조를 사용하며, 조작도 기본 테이블과 거의 같다.- 뷰는 가상 테이블이기 때문에 물리적으로 구현되어 있지 않다.- 데이터의 논리적 독립성을 제공할 수 있다.- 필요한 데이터만 뷰로 정의해서 처리할 수 있기 때문에 .. 더보기
[DB] 정규화(Normalization) 1. 정규화의 개요- 정규화란 함수적 종속성 등의 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속서의 세트로 쪼개어 바람직한 스키마로 만들어가는 과정이다.- 하나의 종속성이 하나의 릴레이션에 표현될 수 있도록 분해해가는 과정이라 할 수 있다.- 정규형에는 제1정규형, 제2정규형, 제3정규형, BCNF형, 제4정규형, 제5정규형이 있으며, 차수가 높아질수록 만족시켜야 할 제약 조건이 늘어난다.- 정규화는 데이터베이스의 논리적 설계 단계에서 수행한다.- 정규화는 논리적 처리 및 품질에 큰 영향을 미친다. 2. 정규화의 목적- 데이터 구조의 안정성을 최대화한다.- 어떤 릴레이션이라도 데이터베이스 내에서 표현 가능하게 만든다.- 효과적인 검색 알고리즘을 생성할 수 있다.- 중복을 배제하여 삽입,.. 더보기
[DB] 관계대수 및 관계해석 1. 관계대수의 개요- 관계대수는 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어이다.- 관계대수는 릴레이션을 처리하기 위해 연산자와 연산규칙을 제공하는 언어로 피연산자가 릴레이션이고, 결과도 릴레이션이다.- 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시한다.- 순수 관계 연산자 : Select, Project, Join, Division- 일반 집합 연산자 : UNION(합집합), INTERSECTION(교집합), DIFFERENCE(차집합), CARTESIAN PRODUCT(교차곱) 2. 순수 관계 연산자- 순수 관계 연산자란 관계 데이터베이스에 적용할 수 있도록 특별히 개발한 관계 연산자를 말한다. 1) Select- Sel.. 더보기
[DB] 관계형 데이터베이스의 제약 조건 1. 제약 조건이란- 데이터베이스에 저장되는 데이터의 정확성을 보장하기 위하여 키를 이용하여 입력되는 데이터에 제한을 주는 것으로 개체 무결성 제약, 참조 무결성 제약 등이 해당된다. 2. 키(Key)의 개념 및 종류- 키는 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 튜플들을 서로 구분할 수 있는 기준이 되는 애트리뷰트를 말한다. 1) 후보키(Candidate Key)- 후보키는 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합, 즉 기본키로 사용할 수 있는 속성들을 말한다.- 하나의 릴레이션 내에서는 중복된 튜플들이 있을 수 없으므로 모든 릴레이션에는 반드시 하나 이상의 후보키가 존재한다.- 후보키는 릴레이션에 있는 모든 튜플에 대해서 유.. 더보기
[DB] 관계형 데이터베이스의 구조 1. 관계형 데이터베이스의 개요- 1970년 IBM에 근무하던 코드(Codd)에 의해 처음 제안되었다.- 관계형 데이터베이스를 구성하는 개체(Entity)나 관계(Relationship)을 모두 릴레이션(Relation)이라는 표(Table)로 표현한다.- 릴레이션은 개체를 표현하는 개체 릴레이션, 관계를 나타내는 관계 릴레이션으로 구분할 수 있다.- 장점 : 간결하고 보기 편리하며, 다른 데이터베이스로의 변환이 용이하다.- 단점 : 성능이 다소 떨어진다. 2. 관계형 데이터베이스의 Relation 구조- 릴레이션은 데이터들을 표(Table)의 형태로 표현한 것으로 구조를 나타내는 릴레이션 스키마와 실제 값들인 릴레이션 인스턴스로 구성한다. 1) 튜플(Tuple)- 튜플은 릴레이션을 구성하는 각각의 행을.. 더보기