[DB] 모델링

·2024년 5월 2일
0

개념적

ERD 구성하기

entity, attribute, relationship 생각하여 구성

논리적 모델링

ERD -> 정규화

왜 정규화를 하는가?

  • 이상현상 : 데이터 무결성을 깨뜨리는 현상
    -> 삽입, 삭제, 수정 (DML)
    이런 이상현상을 테이블의 분리, 속성의 분리를 통해 해결할 수 있음

  • 함수 종속성: 속성간의 관계 (A(결정자) -> B(종속자))

제 1 정규화 : Atomic Column
제 2 정규화 : 부분 함수 종속성 제거
제 3 정규화 : 이행적 함수 종속성 제거
BCNF : X->Y 모든 X결정자가 후보키에 속한다면

만약 외래키, 기본키가 교차된다면
중간 매핑 테이블을 만드는 것이 좋다..ㅎㅎ

반정규화

정규화된 릴레이션을 다시 묶음화하는 것
JOIN을 여러번 쓰게 되면서 효율이 낮아지게 될 때 시행

트랜잭션의 속성

순서대로 A C I D

원자성

트랜잭션에 포함된 작업은 전부 수행되거나 전부 수행되지 않아야 함

일관성

트랜잭션을 수행하기 전이나 수행한 후나 데이터베이스는 항상 일관된 상태 유지

고립성

수행 중인 트랜잭션에 다른 트랜잭션이 끼어들어 변경 중인 데이터 값을 훼손하는 일이 없어야 함

-> synchronize, LOCK이용

지속성

수행을 성공적으로 완료한 트랜잭션은 변경한 데이터를 영구히 저장해야 함

profile
풀스택 호소인

0개의 댓글