[MySQL] Real Mysql 정리

devdo·2022년 8월 19일
1

MySQL

목록 보기
1/7
post-thumbnail

왜 Mysql인가?

이 블로그 내용은 real Mysql 내용을 정리한 내용입니다.


문법정리


아키텍쳐


외래키(FK), 기본키(PK) 계층구조

✳️ 부모테이블(PK) - 자식테이블(PK,FK)
=> 자식테이블이 FK를 가진다!

  • 식별관계
    부모 테이블의 기본키 또는 유니크 키를 자식 테이블이 자신의 기본키로 사용하는 관계

  • 비식별관계
    부모 테이블의 기본키 또는 유니크 키를 자식 테이블자신의 기본키로 사용하지 않고, 외래 키로 사용하는 관계

참고) https://deveric.tistory.com/108


인덱스

0) 후보키(Candidate Key) : 기본키(pk)가 될 수 있는 후보 속성들. 이중에서 기본키, 대체키 등이 나오는 것이다.

1) 복합키(Composite Key) : 기본키(pk)로 쓰는 컬럼을 두개 이상으로 묶어서 정의한 키

2) 대리키(Surrogate Key) : 인공키라고도 불림, UUID같은 것을 써 외부에 노출되도 되는 식별자로 이용, 참고) https://velog.io/@mooh2jj/DB-대리키에-대하여

3) 대체키(Alternate Key) : 후보키 중에 기본키로 선정되지 않은 속성


트랜잭션

  • DB 동시성 이슈
    => 해결은 schronized(동기화), Lock(잠금)!
    Lock이란? 트랜잭션이 시작되면, 이용하고 있는 Row, Table은 트랜잭션이 끝날 때까지 점유하는 메카니즘!
    트랜잭션의 데이터 일관성 및 무결성을 유지하고 동시성 제어에 필요!
    but! 성능저하와 심하면, Dead Lock이 아예 어플리케이션이 멈출 수 있는 불상사가 있을 수 있다!
    참고) https://velog.io/@mooh2jj/트랜잭션-동시성-제어-정리

  • 스프링 AOP 기능 중 @Transactional가 DB 트랜잭션 처리를 대신 해준다.


ORM(JPA)

  • Transaction 내 Query 구성의 끝판왕!
  • ORM이란? JPA Object와 Table 매핑, DB SQL 지향적인 비즈니스로직 -> 자바 객체지향적 설계로 만들수 있는 DB 기술이라고 정의
    참고) https://velog.io/@mooh2jj/JPA-정리


참고)

profile
배운 것을 기록합니다.

0개의 댓글