2023.12.26(화)
오늘은 송아 강사님께서 실시간 강의를 해주셨다. CS 과목 중에서는 다음 내용 정도를 우선적으로 공부하고 생각해보면 좋을 것 같다고 하셨다.
다음 질문 정도 생각해 보라고 하셨다.
이전에 FK에 대해 공부했었던 자료에 따르면 MariaDB 공식 문서에 다음과 같이 FK는 다른 테이블의 PK여야 한다고 나와있다.
You already know that a relationship between two tables is created by assigning a common field to the two tables. This common field must be a primary key to one table.
다만 직접 테이블을 생성해서 실험해본 결과 부모 테이블에서 UNIQUE KEY로 지정된 column도 자식 테이블에서 FK로 사용 가능했다. 당연하지만 자식 테이블에서 FK로 사용할 column과 참조할 부모 table의 column은 동일한 data type을 가져야 하며 테이블의 엔진도 동일해야 한다. UNIQUE하지 않은 column은 FK로 사용 불가능하다. 즉, 일반적으로 부모 테이블의 PK를 FK로 사용하지만 반드시 PK가 아니어도 PK를 비롯한 UNIQUE한 속성을 가진 column은 FK로 사용 가능하다는 것이 내 결론이다.
Transaction은 "데이터베이스의 상태를 변화시키기 위해 수행하는 여러 작업들을 묶어서 하나의 논리적 단위로 다루는 것"이다.
데이터베이스의 상태를 변화시킨다는 것은 INSERT
, SELECT
, UPDATE
, DELETE
와 같은 SQL문을 사용하는 것을 의미한다.
이런 transaction은 Commit(저장)되거나 Rollback(철회)될 수 있다.
트랜잭션은 데이터 무결성과 안정성을 유지하며 데이터베이스 조작을 안전하게 수행하는 데 중요한 역할을 한다.
처음 들어보는 개념도 있는데 나중에 위에서 언급한 CS 내용들을 따로 공부하고 정리해보아야겠다.