본문 바로가기

database3

[DB] Transaction (트랜잭션)이란? Transaction이란? 데이터베이스 관리 시스템 또는 유사한 시스템에서의 상호작용 단위. (유사한 시스템: 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 시스템을 의미) 전부 성공하거나 전부 실패되거나 둘 중 하나의 작업을 수행하며 모든 연산은 반드시 한꺼번에 완료가 되어야 하고 그렇지 않은 경우에는 한꺼번에 취소되어야 한다. (원자성) 한꺼번에 완료가 된 경우에는 COMMIT을 호출해 작업 결과를 DataBase에 반영한다. 취소가 되거나 문제가 발생한 경우에는 ROLLBACK을 호출하고 작업결과를 모두 취소하여 DataBase에 영향을 미치지 않게 한다. Transaction의 성질 Atomicity (원자성) 분리할 수 없는 하나의 단위로 작업은 모두 완료되거나 모두 취소되어야.. 2021. 5. 13.
[DB] Isolation Level (트랜잭션 격리 수준) 트랜잭션 격리 수준 (Isolation Level) 동시에 여러 트랜잭션이 처리 될 때, 트랜잭션끼리 얼마나 서로 고립되어 있는지를 나타내는 것. Read Uncommitted Read Committed Repeatable Read Serializable READ UNCOMMITTED 어떤 트랜잭션의 변경 내용이 COMMIT이나 ROLLBAK과 상관없이 다른 트랜잭션에서 보여진다. Dirty Read 발생 가능 A 트랜잭션에서 10번 사원의 나이를 27살에서 28살로 변경 커밋하지 않음 B 트랜잭션에서 10번 사원의 나이를 조회 28살이 조회됨 (Dirty Read) A 트랜잭션에서 문제가 발생해 ROLLBACK 함 B 트랜잭션은 10번 사원이 여전히 28살이라고 생각하고 로직을 수행 READ COMMI.. 2021. 5. 13.
[DB] Entity와 DTO (그리고 VO) Entity 실제 DataBase의 테이블과 1:1로 매핑되는 클래스 DB의 테이블 내에 존재하는 컬럼만을 속성(필드)으로 가져야 한다. Entity 클래스는 상속을 받거나 구현체여서는 안 되며, 테이블 내에 존재하지 않는 컬럼을 가져서도 안 된다. Entity Setter 금지 및 생성자, 접근 제어 Entity를 작성할 때 setter를 무분별하게 사용하면 객체의 값을 변경할 수 있어 객체의 일관성을 보장할 수 없다. 일관성을 유지할 수 있어야 유지 보수성이 올라가기 때문에 Setter를 사용하기 보다는 객체의 생성자에 값을 넣어줌으로써 setter 사용을 줄이는 것을 지향한다. DTO (Data Transfer Object) 계층간 데이터 교환을 위한 객체. (DB의 데이터를 Service나 Con.. 2021. 5. 1.