💡트랜잭션과 ACID
- 원자성(Atomicity)
- 하나의 트랜잭션 결과가 모두 성공하거나 모두 실패하는 성질
- 일관성(Consistency)
- 트랜잭션 전후로 데이터베이스가 일관된 상태를 유지하는 성질
- 격리성(Isolation)
- 동시에 수행되는 여러 트랜잭션이 서로 간섭하지 않도록 보장하는 성질
✔️즉, 한 트랜잭션이 어떤 데이터에 접근하여 조작 중일 때는 다른 트랜잭션이 접근할 수 없다.
- 지속성(Durability)
- 트랜잭션이 성공적으로 완료된 후에 그 결과가 영구적으로 반영되는 성질
✔️즉, 시스템 장애가 발생하더라도 완료된 트랜잭션의 결과는 손실되지 않아야 함
💡무결성 제약 조건
데이터베이스에 저장된 데이터의 일관성과 유효성을 유지하기 위해 마땅히 지켜야 하는 조건
- 도메인 제약 조건
- 테이블이 가질 수 있는 필드 타입과 범위에 대한 규칙
- 각각의 필드 데이터는 원자값을 가져야 함
- 지정된 필트 타입을 준수해야함
- 값의 범위나 기본값이 지정되었을 경우 따라야 함
- NULL이 허용되지 않았다면 NULL이 저장되어서는 안 된다.
- 키 제약 조건
- 레코드를 고유하게 식별할 수 있는 키로 지정된 필드에 중복된 값이 존재해서는 안 된다.
- 개체 무결성 제약 조건
- 기본 키로 지정한 필드는 고유한 값이어야 함
- 기본키는 값에 NULL을 가질 수 없다.
- 참조 무결성 제약 조건
- 외래 키를 통해 다른 테이블을 참조할 때 데이터의 일관성을 지키기 위한 제약 조건
- 외래 키는 참조하는 테이블의 기본 키와 같은 값을 갖거나 NULL 값을 가져야 하는 규칙 (=외래 키 제약 조건 )
- PK와 FK가 도메인이 같아야 하고, PK에 없는 값을 FK가 값으로 가질 수 없다.