본문 바로가기

정보/데이터베이스

[SQL] SQL에 대한 기본적인 이해

오늘은 SQL에 대한 기본적인 내용에 대하여 글을 작성해보도록 하겠습니다.

 

SQL은 Structured Query Language의 약자로 관계형 데이터베이스(RDBMS)를 다루기 위해 사용하는 언어입니다.

 

관계형 데이터베이스(RDBMS)키(Key)값(Value)들의 관계를 테이블화하여 간단하게 표시한 데이터베이스입니다.

 

우리가 흔히 쓰는 엑셀이나 한셀을 생각하시면 될 것 같습니다.

 

 

관계형 데이터베이스(RDBMS) 주요 용어


  • Row(행, 튜플) : 2차원 구조를 가진 테이블에서 가로 방향으로 이루어진 데이터 집합
  • Column(열, attribute) : 2차원 구조를 가진 테이블에서 세로 방향으로 이루어진 데이터 집합
  • Field : Row와 Column이 겹치는 하나의 공간
  • Primary Key(PK, 기본키) : 유일하게 테이블의 각 행을 식별할 수 있는 Key
  • Foreign Key(FK, 외래키) : 외부에서 가져온 다른 테이블의 행을 식별할 수 있는 Key

Primary Key(PK, 기본키)는 관계형 데이터베이스(RDBMS)에서 중요한 개념으로 각 행을 구별해주는 유일한 키입니다.

 

Primary Key의 조건은 다음과 같습니다.

  • NULL값이 없어야한다 (NOT NULL)
  • UNIQUE 조건을 만족해야 한다

각 행을 구별해주는 유일한 키이기 때문에 위의 두 조건을 만족해야 합니다.

 

 

SQL의 종류


- 데이터 정의어(DDL : Data Definition Language)

데이터 간의 관계 정의를 위한 언어로, 테이블과 같은 데이터 구조 또는 객체를 생성, 변경, 삭제하는 데 사용되는 언어.

대표적인 명령어로는 CREATE, ALTER, DROP 등이 있습니다.

 

- 데이터 조작어(DML : Data Manipulation Language)

데이터를 조작하기 위한 언어로, 테이블 내의 데이터를 검색, 등록, 삭제, 갱신하는 데 사용되는 언어.

대표적인 명령어로는 SELECT, WHERE, INSERT, UPDATE, DELETE 등이 있습니다.

 

- 데이터 제어어(DCL : Data Control Language)

데이터에 대한 엑세스를 제어하기 위한 언어로, 데이터 보안, 무결성, 병행 수행 제어 등에 사용되는 언어.

대표적인 명령어로는 GRANT, REVOKE, COMMIT, ROLLBACK 등이 있습니다.

 

 

트랜잭션


트랜잭션은 데이터베이스 처리 작업 중 분할할 수 없는 최소의 단위를 의미합니다.

 

트랜잭션 내의 모든 작업이 성공해야 하나의 트랜잭션이 종료됩니다.

 

예를 들어 하나의 트랜잭션 내에서 데이터를 읽고, 삭제하고, 수정하는 단계 중 하나라도 실패한다면 전부 취소됩니다. 

 

대부분의 경우 트랜잭션 진행 중에 권한이 없는 다른 사람은 해당 데이터에 접근할 수 없습니다.

 

트랜잭션의 4가지 특징을 ACID라고 부르는데 ACID는 다음과 같습니다.

  • Atomicity(원자성) : 연산 전체가 전부 성공하거나 실패하는 성질
  • Consistency(일관성) : 트랜잭션 성공 시 일관성 있는 데이터베이스 상태를 유지하는 성질
  • Isolation(고립성) : 트랜잭션 실행 중에는 다른 트랜잭션 접근이 불가한 성질
  • Durability(영속성) : 성공한 트랜잭션의 결과는 영구적으로 데이터베이스에 저장되는 성질

COMMIT 명령어를 통해 해당 트랜잭션을 종료할 수 있고, ROLLBACK 명령어를 통해 모든 데이터 값을 트랜잭션 수행 이전 상태로 되돌릴 수 있습니다.

 

SAVEPOINT 명령어를 사용하면 저장점을 설정하여 나중에 지정된 저장점으로 롤백을 할 수 있습니다.

 

 


오늘은 SQL에 대한 기본적인 내용에 대하여 설명해보았습니다.

 

구체적인 명령어 사용법은 다음에 설명해보도록 하겠습니다.