• Characteristic
    • Atomicity: 트랜잭션을 더 이상 나눌 수 없이 연산을 성공하거나 실패를 보장
    • Consistency: 유효성 검사나 데이터 무결성 제약조건을 손상시키지 않고 상태 변환
    • Isolation: 동시성 트랜잭션에서 한 트랜잭션이 다른 트랜잭션에 영향을 주지 않는 것
    • Durability: 트랜잭션 결과값은 영구히 반영되어야 하는 것
  • Keys
    • Uniqueness: 튜플마다 값이 다른 attribute 특성 (e.g., {StudentID, Name})
    • Minimality: no attribute can be removed from the set without losing the uniqueness property. (e.g., StudentID)
    1. Super Key: uniqueness를 만족하는 attribute 집합
    2. Candidate Key: uniqueness와 minimality를 같이 만족하는 attribute 집합
    3. Primary Key: Candidate Key 중 최종적인 후보키 '하나’
    4. Foreign Key: 다른 테이블의 Primary Key를 참조하는 키
      1. the foreign key constraints: the database will reject any attempt to add or update rows in the orders table if they’re not valid.
  • Indexing: 검색 속도 향상
    • B+tree ⇒ internal node(key), leaf node(value).
  • order of execution: FROM → JOIN → WHERE → GROUPBY → HAVING → SELECT → ORDERBY
  • 설계
    • 관계: N대M -> 매핑테이블, 트랜잭션 ACID, 다중작업지원: 트랜잭션 Isolation 레벨(read uncommitted, read committed, repeatable read, serializable), 인덱스, 데이터 백업, 데이터 복구