본문 바로가기

데이터베이스

데이터베이스

ㅁ 데이터베이스란

데이터베이스는 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합이다.논리적으로 연관된 하나 이상의 자료의 모음으로 그 내용을 고도로 구조화함으로써 검색과 갱신의 효율화를 꾀한 것이다.

데이터베이스의 장단점

  • 데이터베이스 장점
    1. 데이터 중복 최소화
    2. 데이터 공유
    3. 일관성, 무결성, 보안성 유지
    4. 최신의 데이터 유지
    5. 데이터의 표준화 가능
    6. 데이터의 논리적, 물리적 독립성
    7. 용이한 데이터 접근
    8. 데이터 저장 공간 절약
  • 데이터베이스 단점
    1. 데이터베이스 전문가 필요
    2. 많은 비용 부담
    3. 데이터 백업과 복구가 어려움
    4. 시스템의 복잡함
    5. 대용량 디스크로 엑세스가 집중되면 과부하 발생

ㅁ 데이터베이스 모델

  • 관계 데이터 모델
  • → 데이터 몯ㄹ 중 가장 개념이 간단한 모델.IBM에서 나왔으며 상대 수학적인 이론을 기반으로 한다.특히 집합론과 논리분야의 개념을 사용했다.
  • SQL → 개체 관계형 데이터베이스를 지원하기 위해 IBM이 창안했으며 수학적 관계 대수와 관계 논리에 기반을 둔다.데이터 모델은 데이터를 조작하기 위한 연산집합을 가진다.

ㅁ 데이터베이스 관리 시스템 선택

데이터베이스 설계 후 데이터베이스 관리 시스템을 사용해야 한다. 여러 가지 데이터베이스 관리 시스템 선택 사항(DBMS)이 존재한다.

ㅁ DBMS 언어 선택

  • 데이터 정의 언어(data definition language,DDL)
    • CREATE - 새로운 데이터베이스 관계 (테이블), VIEW인덱스저장 프로시저 만들기
    • DROP - 이미 존재하는 데이터베이스 관계(테이블), 뷰, 인덱스, 저장 프로시저를 제거한다.
    • ALTER - 이미 존재하는 데이터베이스 개체에 대한 변경, RENAME의 역할을 한다.
    • TRUNCATE - 관계 (테이블)에서 데이터를 돌이킬 수 없는 제거
  • 컴퓨터 사용자 또는 응용 프로그램 소프트웨어가 컴퓨터의 데이터를 정의하는 컴퓨터 언어 또는 컴퓨터 언어 요소이다
  • 데이터 조작 언어(Data Manipulation Language,DML)
  • 데이터베이스 사용자 또는 응용 프로그램 소프트웨어가 컴퓨터 데이터베이스에 대해 데이터 검색, 등록, 삭제, 갱신을 위한, 데이터베이스 언어 또는 데이터베이스 언어 요소이다
  • 데이터 제어 언어
    • CONNECT데이터베이스 또는 스키마에 연결하는 권한
    • SELECT - 데이터베이스에서 데이터를 검색하는 권한
    • INSERT - 데이터베이스에 데이터를 등록할 수 있는 권한
    • UPDATE - 데이터베이스의 데이터를 업데이트 할 수 있는 권한
    • DELETE - 데이터베이스의 데이터를 삭제할 수 있는 권한
    • USAGE - 스키마 또는 함수와 같은 데이터베이스 개체를 사용할 수 있는 권한
  • 데이터 제어 언어(영어: Data Control Language, DCL)는 데이터베이스에서 데이터에 대한 액세스를 제어하기 위한 데이터베이스 언어 또는 데이터베이스 언어 요소이다. 권한 부여(GRANT)와 박탈(REVOKE)이 있으며, 설정할 수 있는 권한으로는 연결(CONNECT), 질의(SELECT), 자료 삽입(INSERT), 갱신(UPDATE), 삭제(DELETE) 등이 있다.

트랜잭션

→ 하나의 논리적 단위를 구성하는 데이터베이스 연산의 모임.동시에 여러 트랜잭션이 수행되기 위해서 데이터베이스의 일관성이 보장되어야 하며 이를 위해 동시성 제어와 회복 제어를 위한 모듈이 있으며 이 둘을 합쳐 트랙잭션 관리 모듈이라고 한다.

  • 금융 거래 금융 거래(financial transaction)는 유가증권(주식, 채권통화파생상품 및 기타 가치가 있는 금융상품), 자산 또는 서비스를 제공받고 현금을 결제하는 거래 즉, 현금을 주고 받는 거래이다.
  • 트랜잭션 처리
  • 분산 트랜잭션
  • 트랜잭션 비용
  • 데이터베이스 트랜잭션 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위이다. 여기서 유사한 시스템이란 트랜잭션이 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 시스템을 의미한다.

단일 트랜잭션은 데이터베이스 내에 읽거나 쓰는 여러 개 쿼리를 요구한다 이때 중요한 것은 데이터베이스가 수행된 일부 쿼리가 남지 않는 것이다. 예를 들면, 송금을 할 때 한 계좌에서 인출되면 다른 계좌에서 입금이 확인되는 것이 중요하다. 또한 트랜잭션은 서로 간섭하지 않아야 한다.

만약 쿼리 하나가 실패하면, 데이터베이스 시스템은 전체 트랜잭션 또는 실패한 쿼리를 롤백한다. 이것은 DBMS가 어떻게 사용되고 셋업 되었느냐에 따라 다르다. 트랜잭션은 커밋전에 언제든지 수동으로 롤백될 수 있다.

쿼리는 데이터베이스에게 특정한 데이터를 보여달라는 클라이언트(사용자)의 요청을 말한다

트랜잭셔널 데이터베이스

트랜잭션을 지원하는 데이터베이스를 트랜잭셔널 데이터베이스(transactional database)라고 부른다. 현재 대부분의 관계형 데이터베이스 관리시스템은 트랜잭션 데이터베이스이다.