[DB] 원자성(Atomicity)
DB2024. 11. 27. 02:03[DB] 원자성(Atomicity)

원자성(Atomicity)이란?데이터베이스 관리 ACID 속성 중 하나이다.트랜잭션 내의 모든 쿼리는 성공하거나, 실패 시 전부 롤백(취소) 되어야 한다.트랜잭션 내의 모든 쿼리가 성공해야만 완료(commit)이 된다.트랜잭션 내에 100개의 쿼리가 있다면, 이 100개 모두가 성공해야 데이터베이스에 반영된다.1개의 쿼리라도 실패 시, 롤백이다.시스템 오류로 인해 트랜잭션 중에 데이터베이스가 다운되거나 오류가 발생해도, 시스템은 트랜잭션을 "완전한 실패 상태"로 간주한다.이후 데이터베이스 복구 시, 실패한 트랜젹선의 영향을 전부 무효화하고 이전 상태로 되돌린다.요약원자성이란 원자(atom)에서 유래된 것으로, 더 이상 쪼갤 수 없는 최소 단위라는 의미를 가진다.트랜잭션 내에 100개워 쿼리 중 99개가 ..

[DB] 트랜잭션(Transaction)
DB2024. 11. 26. 00:08[DB] 트랜잭션(Transaction)

트랜잭션데이터베이스에서 하나의 작업 단위로 처리하는 SQL 쿼리들의 집합모든 쿼리가 성공하거나 실패하는 "All or Nothing" 원칙트랜잭션 주요 단계Transaction Begin트랜잭션의 시작을 알림.여러 SQL 작업이 묶이게 된다.Transaction COMMIT트랜잭션 내에서 발생한 모든 변경 사항을 데이터베이스에 영구적으로 저장Transaction ROLLBACK트랜잭션 도중 오류가 발생하거나 취소하고 싶을 때, 모든 변경 사항을 초기 상태로 복구예상치 못한 종료시스템이 갑자기 종료되거나 충돌 시, 트랜잭션은 자동으로 ROLLBACK 처리커밋 중 시스템이 다운된다면?큰 트랜잭션을 할 경우 커밋 중에 시스템이 다운될 가능성이 더 크다.커밋이 빠르다면 시스템이 다운될 가능성이 낮아진다.해결 ..

[DB] django 에서 다대다(Many-to-Many) 관계 예시
DB2024. 9. 16. 02:28[DB] django 에서 다대다(Many-to-Many) 관계 예시

Django 다대다(Many-to-Many) 관계 예시1. 서론이번 포스트 Django에서 다대다(Many-to-Many) 관계를 사용하는 모델의 예시입니다.팀프로젝트를 하다가 데이터베이스를 설계?를 하려다보니 잘 모르는 부분이라 우선 정리를 해봅니다.이 예시는 강의(Lecture)와 키워드(Keyword) 간의 다대다 관계를 정의한 것입니다. 한 강의는 여러 키워드를 가질 수 있고, 하나의 키워드는 여러 강의에 연결될 수 있습니다.Keyword 모델class Keyword(models.Model): keyword = models.CharField(max_length=255) # 키워드Keyword 모델은 키워드를 나타냅니다. keyword 필드는 각 키워드를 저장하는 문자열 필드입니다.이 모델은..

[SQL] 기본 키(Primary Key)와 외래 키(Foreign Key)
DB2024. 8. 8. 00:54[SQL] 기본 키(Primary Key)와 외래 키(Foreign Key)

SQL 기본 키와 외래 키기본 키(Primary Key, PK)기본키는 테이블 내의 각 행을 고유하게 식별하는 데 사용되는 열 또는 열 집합이다.기본키는 고유해야 하며, NULL 값을 가질 수 없다.기본 키의 특징고유성 : 각 행을 고유하게 식별한다. 즉, 중복값 존재 XNULL 불가 : 기본 키는 NULL 값을 가질 수 없다.기본 키 예제CREATE TABLE Students ( StudentID INT PRIMARY KEY, Name VARCHAR(100), BirthDate DATE);위 예제에서는 StudentID 열은 Student 테이블의 기본 키로 설정되어 있다.따라서 StudentID 는 각 학생을 고유하게 식별하며, NULL 값을 가질 수 없다. 외래 키(Foreign K..

image