DataBase/Mysql

[MySQL]"DB" 제약 조건, 뷰, 트랜젝션

민돌v 2021. 5. 7. 17:43
728x90

제약조건, 뷰

제약조건은 열에 넣을 수 있는 값에 대하여 제한하는 것,

테이블의 생성 시에 추가됩니다.

제약조건의 종류로는 NOT NULL, PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK가 있습니다.

1) 체크 제약조건

열에 넣을 수 있는 값을 제한

- Where 절과 같은 조건식을 사용하며 그 형식은

ex) Alter Tale "테이블명" ADD Constraint Check "칼럼" in ('값','값')

- 거의 모든 조건을 사용할수 있지만 서브쿼리는 사용할 수 없습니다.

- 에러 발생시 데이터 추가 X

2) 뷰

반복되서 사용되는 쿼리를 데이터베이스 안에 저장하여 사용하는 것

- 뷰안에 무엇이 저장되었는지 보기위해서는 테이블 처럼 다루면 된다.

- 뷰는 쿼리상에서만 존재하는 가상의 테이블

뷰를 사용하는 이유

1. 데이터 베이스의 구조를 변경하더라도 테이블에 의존하는 어플리케이션을 변경할 필요가 없기 때문이다.

2. 뷰는 복잡한 쿼리를 간단한 명령으로 단순하게 만들 수 있다.

3. 사용자에게 필요없는 정보를 숨기는 뷰를 만들 수 있다.

⇒ check 제약조건과 뷰는 여러 사람이 데이터 베이스를 이용할 때 데이터 베이스를 관리, 통제하는데 도움이 됩니다.


트랜젝션(Transaction)

트랜잭션은 한 단위의 일을 수행하는 일련의 SQL문 이다.

트랜잭션 동안은 모든 단계가 완료될 수 없다면, 어떠한 일도 일어나서는 안된다.

( All or Nothing)

1) ACID

SQL에서 어느 단걔가 트랜잭션으로 간주되는지 결정하려면 ACID라 불리는 4가지 특징이 참이여야 한다.

1. A (원자성)

: 트랜잭션을 구성하는 모든 명령이 실행되거나 어떠한 명령도 실행되지 않아야 한다.

( 일부만을 수행할 수 없다.)

2. C (일관성)

: 트랜잭션이 끝난 후 데이터베이스는 일관성을 유지해야한다.

3. I (지속성)

: 독립성이란 모든 트랜잭션은 동시에 일어나는 다른 트랜잭션과 상관없이 데이터 베이스에 대하여 일관된 뷰를 가지고 있습니다.

4.D (지속성)

: 트랜잭션이 끝난 후, 데이터ㅔ이스는 데이터를 정확히 저장하고 정전이나 그외의 이상 상황으로부터 데이터를 보호해야 합니다.

2) SQL에서 트랜잭션의 사용

1. Start Transaction;

: 시작을 알립니다. 여기서 부터 데이터베이스 시스템이 코드를 추적합니다.

2. Commit

: 문제가 없다면 이 명령을 사용하여 모든 코드를 실행합니다.

3. Rollback;

: 이것을 사용하여 문제가 생겼을시 모든 상황을 처음으로 돌릴수 있습니다.

반응형