구름조아
집합연산, 관계연산, 테이블과 컬럼, SQL, 트랜잭션 본문
집합연산
- 두 개의 릴레이션의 합을 의미하는 합집합
- 특정 릴레이션에만 존재하며 다른 릴레이션에는 존재 하지 않는 것을 의미하는 차집합
- 두 릴레이션에 함께 존재하는 것을 의미하는 교집합
- 각 릴레이션에 존재하는 모든 데이터를 조합하는 곱집합
관계연산
- 릴레이션에서 특정 조건에 해당하는 행(튜플)만 조회하는 선택연산
- 릴레이션에서 특정 조건에 맞는 속성만 조회하는 투영연산
- 여러 릴레이션에서 공통된 속성을 통해 새로운 릴레이션을 만드는 결합연산
- 기준 릴레이션에서 나누는 릴레이션이 가지는 속성과 동일한 값을 가지는 행(튜플)만 추출하여 나누는 릴레이션의 속성을 삭제한 후 중복된 행을 제거하는 나누기 연산
테이블과 컬럼
- 관게형 데이터베이스에서 릴레이션은 곧 테이블이다.
- 테이블은 행과 컬럼으로 구성되며, 하나의 기본키를 가지고 있다.
- 컬럼은 어떤 데이터를 저장하기위한 필드로써 속성이라고도 한다.
- 외래키는 다른 테이블의 기본키를 참조하는 컬럼이다.
SQL(Structured Query Language)
- 관계형 데이터베이스에서 데이터 정의, 조작, 제어를 하기 위해 사용하는 언어이다.
- SQL은 단순한 스크립트가 아니라 일반적인 개발 언어와 같이 독립된 하나의 개발 언어 이다.
- 관계형 데이터베이스에 대한 전담 접속 용도로 사용되며 독립되어 있다.
SQL 문장의 종류
데이터 정의어 DDL |
CREATE DROP RENAME ALTER TRUNCATE |
1. 테이블이나 컬럼과 같이 데이터 구조를 정의하는데 사용되는 명령어 2. 구조를 생성, 변경, 삭제 하는 데이터 구조와 관련된 명령어 |
데이터 조작어 DML |
SELECT INSERT DELETE UPDATE |
1. 데이터베이스내 데이터를 조회 및 검색하기 위한 명령어 2. 데이터의 추가, 삭제, 수정 하기 위한 명령어 |
데이터 제어어 DCL |
GRANT REVOKE |
1. 데이터베이스에 접근하고 객체들을 사용하도록 권한을 부여하거나 회수하는 명령어 |
트랜잭션 제어어 TCL |
COMMIT ROLLBACK SAVEPOINT |
1. 트랜잭션 별로 제어하는 명령어 |
트랜잭션(Transaction)
- 트랜잭션은 데이터베이스의 작업을 처리하는 단위이다.
원자성 Atomicity |
1. 트랜잭션은 데이터베이스에서 실행되는 연산의 전부가 실행되거나 실행되지 않아야 한다. 2. 트랜잭션이 완전히 끝나지 않았을 경우에는 실행되지 전의 상태와 같아야 한다. |
일관성 Consistency |
1. 트랜잭션 실행 결과로 데이터베이스의 상태가 모순되지 않아야 한다. 2. 트랜잭션 실행 후에도 일관성이 유지되어야 한다. |
고립성 Isolation |
1. 트랜잭션 실행 중에 생성하는 연산의 중간결과는 다른 트랜잭션이 접근할 수 없다. 2. 부분적인 실행 결과를 다른 트랜잭션이 볼 수 없다. |
영속성 Durability |
1. 트랜잭션이 그 실행을 성공적으로 완료하면 그 결과는 영구적 보장이 되어야 한다. |
SQL 실행 순서
- SQL문은 3단계를 거쳐 실행 된다.
파싱 Parsing |
1. SQL 문법을 확인하고 구문 분석을 한다. 2. 구문 분석한 SQL을 Library Cache에 저장한다. |
실행 Execution |
1. 옵티마이저가 생성한 실행 계획에 따라 SQL을 실행 한다. |
연출 Fetch |
1. 데이터를 읽어 전송한다. |
'SQLD자격증공부 > SQL기본' 카테고리의 다른 글
DDL, Create table, Alter, Drop, Truncate, View (0) | 2023.05.08 |
---|---|
NVL, NVL2, Decode, Case when, rownum, rowid, with (0) | 2023.05.08 |
Group by, Having, 집계함수 (0) | 2023.05.08 |
Null, 문자함수, 숫자함수, 날짜함수 (0) | 2023.05.08 |
SELECT, Order by, DISTINCT, Alias, Where, Dual (0) | 2023.05.08 |