알아두면 좋은 지식들

dgk089·2021년 1월 14일
0

* 자료구조의 정의와 중요한 이유

  • 자료구조란 데이터에 편리하게 접근하고, 조작하기 위한 데이터를 저장하거나 조직하는 방법
  • 효율적으로 자료구조를 설계하면 프로그램 실행시간(퍼포먼스)이 줄고, 사용가능한 저장공간(메모리) 또한 늘어나게 된다.

트랜잭션(Transaction)

트랜잭션은 일련의 작업들이 마치 하나의 작업처럼 취급되어서 모두 다 성공하거나 아니면 모두 다 실패하는걸 말한다.

트랜잭션의 성질(ACID)

  • Atomicity(원자성)

    트랜잭션의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 한다.

    트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 모두가 완벽히 수행되지 않고 어느하나라도 오류가 발생하면 트랜잭션 전부가 취소되어야한다.

  • Consistency(일관성)

    트랜잭션의 작업 처리 결과가 항상 일관성 있어야 한다.

    트랜잭션이 진행되는 동안에 데이터베이스가 변경 되더라도 업데이트된 데이터베이스로 트랜잭션이 진행되는것이 아니라, 처음에 트랜잭션을 진행 하기 위해 참조한 데이터베이스로 진행된다. 이렇게 함으로써 각 사용자는 일관성 있는 데이터를 볼 수 있는 것이다.

  • Isolation(독립성, 격리성)

    둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들 수 없다.

    하나의 특정 트랜잭션이 완료될때까지, 다른 트랜잭션이 특정 트랜잭션의 결과를 참조할 수 없다.

  • Durability(지속성)

    트랜잭션이 성공적으로 완료됐을 경우, 결과는 영구적으로 반영되어야 한다.

Commit, Rollback - TCL(transaction Control Language)

  • Commit 연산

    Commit 연산은 트랜잭션 처리가 정상적으로 종료되어 트랜잭션이 수행한 변경 내용을 데이터베이스에 반영하는 연산

  • Rollback 연산

    Rollback 연산은 트랜잭션 처리가 비정상적으로 종료되어 데이터베이스의 일관성을 깨뜨렸을 때, 이 트랜잭션이 행한 모든 연산을 취소하는 연산

  • Savepoint

    현재의 트랜잭션을 작게 분할하는 명령어(저장점 생성)

스키마(Schema)

  • 데이터베이스를 구성하는 데이터의 크기,구조, 관계 등을 정의한 것
  • 데이터베이스에서 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의한 구조
  • 데이터베이스 사용자가 자료를 저장, 조회, 삭제, 변경할 때 DBMS는 자신이 생성한 데이터베이스 스키마를 참조하여 명령을 수행한다.
    • DBMS(Database Management System) : 저장장치 내에 정리되어 저장된 데이터의 집합인 데이터베이스를 효율적으로 관리하는 소프트웨어

스키마 3층 구조

  • 외부 스키마(External Schema) : 프로그래머나 사용자의 입장에서 데이터베이스의 모습으로 조직의 일부분을 정의한 것

    ex) 한 사용자는 SELECT * FROM TABLE; 을 사용해 데이터를 볼 수 있다.

  • 개념 스키마(Conceptual Schema) : 모든 응용 시스템과 사용자들이 필요로하는 데이터를 통합한 조직 전체의 데이터베이스 구조를 논리적으로 정의한 것(기관이나 조직 전체의 입장, 전체적인 뷰)

    ex) 테이블의 구성과, 속성이 어떻게 되는지, 또한 어떤 테이블과 릴레이션을 갖고 있는지 등

  • 내부 스키마(Internal Schema) : 데이터베이스의 물리적 구조를 가리킴, 프로그래머나 설계자의 관점에서 바라보는 스키마

    ex) INSERT문에 의해 저장되는 VALUES가 어떠한 알고리즘으로 하드디스크의 어떠한 부분에 저장이 되는데, 이러한 시스템점, 물리적인 시각의 스키마

0개의 댓글