제약조건, 뷰
제약조건은 열에 넣을 수 있는 값에 대하여 제한하는 것,
테이블의 생성 시에 추가됩니다.
제약조건의 종류로는 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;
: 이것을 사용하여 문제가 생겼을시 모든 상황을 처음으로 돌릴수 있습니다.
'DataBase > Mysql' 카테고리의 다른 글
Mysql Workbench로 import/ export 하기 (데이터 내보내기, 데이터 가져오기) (0) | 2021.07.22 |
---|---|
Python 이용하여 Mysql에서 Json 데이터 Insert하기 (json 데이터 삽입) (3) | 2021.05.18 |
[MySQL] "DB" 조인(Join)과 다중 테이블 연산 (0) | 2021.05.07 |
[MySQL] "DB" SQL 이란 (0) | 2021.05.07 |
[MySQL] "DB" 관계대수와 SQL (0) | 2021.05.07 |