1 분 소요

관계형 데이터베이스

데이터베이스는 크게 계층형, 네트워크형, 관계형 3가지로 분류되며 요즘은 관계형 데이트베이스를 주로 쓰는 추세이다.

관계형 데이터베이스는 관계를 통해 테이블간 Join 연산을 통해 합집합, 교집합, 차집합 등을 만들 수 있다.

주로 사용하는 데이터베이스로는 Oracle, MySql, MS-Sql, Sybase 등이 있다.

연산의 종류

관계형 데이터베이스는 릴레이션을 사용해서 집합 연산과 관계 연산을 할 수 있다.

집합 연산

  • 합집합
    • 두 개의 릴레이션을 하나로 합하는 것
    • 중복된 행은 한 번만 조회된다.
  • 차집합
    • 본 릴레이션에 존재하며, 타 릴레이션에 존재 하지 않는 것 조회
  • 교집합
    • 두 개의 릴레이션 간에 공통된 것을 조회
  • 곱집합
    • 각 릴레이션에 존재하는 모든 데이터를 조합하여 연산

관계 연산

  • 선택 연산
    • 조건에 맞는 행만을 조회
  • 투영 연산
    • 조건에 맞는 속성만을 조회
  • 결합 연산
    • 공통된 속성을 사용해서 새로운 릴레이션을 만듬
  • 나누기 연산
    • 동일한 값을 가지는 행을 추출하고 속성을 삭제 후 중복된 행을 제거함

테이블의 구조

  • 기본키
    • 하나의 테이블에서 유일성,최소성,NotNull,대표성을 만족하는 것 (Primary Key)
  • 행(Row)
    • 하나의 테이블에 저장되는 값으로 튜플이라고도 부름
  • 칼럼(Columm)
    • 데이터를 저장하기 위한 Filed로 속성이라고도 함
  • 외래키(Foreign Key)
    • 다른 테이블의 기본키를 참조하는 칼럼
    • 관계 연산 중에서 결합 연산인 Join을 하기 위해 사용

SQL

SQL은 DB에 대해서 데이터의 구조를 정의, 데이터 조작, 데이터 제어등 을 할 수 있는 절차형 언어이다.

ANSI/ISO 표준을 준수하여 DBMS가 변경되어도 사용 가능하다.

SQL의 종류

  • DDL(Definition)
    • DB의 구조를 정의하는 언어이다.
    • CREATE, ALTER, DROP, RENAME, TRUNCATE 등
  • DML(Manilpulation)
    • 테이블에서 데이터 입력, 수정, 삭제, 조회한다, 가장 많이 사용됨
    • INSERT, UPDATE, DELETE, SELECT 등
  • DCL(Control)
    • DB사용자에게 권한을 부여하거나 회수한다.
    • GRANT, REVOKE
  • TCL(Transaction Control)
    • 트랜젝션을 제어하는 명령어이다.
    • COMMIT, ROLLBACK, SAVEPOINT 등

일반적인 순서는 DCL을 통해 권한을 부여하고 DDL을 통해 테이블의 뼈대를 만든 후DML을 통해 데이터를 입력 수정 조회 하여 사용 하는 방식이다.

트랜잭션

트랜 잭션은 데이터베이스의 작업을 처리하는 단위위다.

트랜잭션은 크게 4가지의 특성을 가진다

  • 원자성
    • 트랜잭션은 DB연산의 전부가 실행되거나 전혀 실행되지 않아야한다. (ALL or Nothing)
    • 트랜잭션의 처리가 완전히 끝나지 않았을 경우는 실행되지 않은 상태와 같다.
  • 일관성
    • 트랜잭션 실행 결과로 DB상태가 모순되지 않아야 함
    • 일관성은 트랜잭션 여부와 상관 없이 항상 유지되어야 함
  • 고립성
    • 트랜잭션 실행 중에 생성하는 연산의 중간결과는 다른 트랜잭션이 접근할 수 없다.
    • 부분적인 실행 결과를 다른 트랜잭션이 볼 수 없다.
  • 영속성
    • 트랜잭션 실행이 성공했을 때 결과는 영구적으로 보장되어야 함

SQL문 실행 순서

  1. 파싱(Parsing)
    • SQL의 문법을 확인하고 구문분석함
    • 구문부석이 됐다면 Library Cache에 저장한다
  2. 실행(Execution)
    • Optimizer가 수립한 실행 계획에 따라 SQL을 실행한다.
  3. 인출(Fetch)
    • 데이터를 읽어서 정리한다.

댓글남기기