하나의 테이블에서 변경된 데이터를 관계를 통해 나머지 부분들로 전파되게 하는것 입니다. 주로 중복을 제거하는 방식으로 정규화를 진행합니다.
정규화의 장점은 이상 발생의 가능성을 낮추는 것 입니다. 반면 단점은 연산 시간이 증가한다는 점이 있습니다. 이 때 과도한 연산 시간 증가를 해소하기 위해 역 정규화를 실행합니다.
X와 Y를 속성으로 갖는 어떤 릴레이션이 존재할 때, X값을 알면 Y값을 알 수 있고, X값에 따라 Y값이 변하는 경우를 Y는 X에 함수적 종속이라고 합니다. 이 경우 X를 결정자, Y를 종속자 라고 합니다. 함수적 종속에는 완전 함수적 종속, 부분 함수적 종속, 이행적 함수적 종속이 있습니다.
완전 함수적 종속은 종속자가 기본키에만 종속되거나, 기본키가 여러 속성인 경우 기본키에 해당하는 모든 속성의 부분집합에 종속된 경우를 말합니다.
부분 함수적 종속은 기본키가 아닌 다른 속성에 종속되어 있거나, 기본키가 여러 속성인 경우 기본키에 해당하는 속성 중 일부만 종속되는 경우를 말합니다.
이행적 함수 종속은 한 릴레이션에 X, Y, Z 속성이 존재하고, Z는 Y에 종속이고, Y는 X에 종속일 때 Z는 X에 종속이 성립하는 경우를 말합니다. 즉 Z를 알면 Y를 알고, Y를 알면 X를 알 수 있는 경우를 말합니다.
데이터베이스 장애를 의미합니다. 갱신, 삽입, 삭제 이상이 있습니다.
갱신 이상은 반복된 데이터 중 일부를 갱신할 때 데이터의 불일치가 발생하는 경우를 말합니다.
삽입 이상은 데이터 삽입시 불필요한 정보를 함께 저장해야 필요한 정보를 저장할 수 있는 경우를 말합니다.
삭제 이상은 데이터 삭제시 필요한 정보를 삭제해야 불필요한 정보를 삭제할 수 있는 경우를 말합니다.
데이터의 정확성과 일관성을 유지하고 보증하는 것을 말합니다. 개체, 참조, 범위 무결성이 있습니다.
개체 무결성은 모든 테이블은 기본키를 가지며, 기본키로 선택 된 열은 고유해야 하고, 널값을 허용하지 않음을 의미합니다.
참조 무결성은 외래키는 특정 테이블의 기본키 값을 참조해야 하는것을 의미합니다.
범위 무결성은 정의된 범위에서 관계형 데이터베이스의 모든 열이 선언되도록 규정하는것을 의미합니다.
데이터의 입력, 수정, 삭제등의 트랜잭션이 발생할 때 당장은 큰 위험이 없어 보이지만, 누적될 시 데이터가 잘못된 곳에 위치하는 등 큰 문제를 초래해 데이터베이스 유지보수에 어려움이 생기기 때문입니다.
RDB는 데이터 무결성을 보장하는 장점이 있고, NoSQL은 유연성이 높은 장점이 있습니다.
RDB는 데이터 저장시 명확하게 정의된 스키마에 저장하지만, NoSQL은 스키마가 없으므로 다양한 종류의 데이터를 저장할 수 있습니다.
RDB는 수평 확장이 어렵고, 수직 확장이 쉬운 특징이 있지만, NoSQL은 데이터가 변경되면 여러 콜렉션과 문서를 수정해야 하는 특징이 있습니다.
트랜잭션을 데이터베이스의 상태를 변화시키는 논리적 기능을 수행하기 위한 작업의 단위를 말합니다.
하나의 트랜잭션이 데이터를 액세스 하는 동안 다른 트랜잭션이 해당 데이터에 접근하지 못하도록 하는 트랜잭션 병행 처리 기법을 말합니다. 이 때 사용하는 데이터는 로크라 부릅니다.
로킹 기법이 적용 될 단위를 말합니다.
로킹 단위가 커지면 로크의 수가 적어지고, 제어기법이 간단해집니다. 하지만 병행성이 감소합니다.
로킹 단위가 작아지면 로크의 수가 많아지고, 제어하기 까다롭지만, 병행성이 증가합니다.
커밋은 한 트랜잭션이 성공적으로 종료되었을 때, 작업 결과를 SQL 명령어를 통해 실제 물리적 디스크에 저장하는 것을 말합니다.
롤백은 한 트랜잭션이 실패로 종료되었을 때, 진행된 모든것을 작업을 실행하기 전 상태로 돌리는것을 말합니다.
현재 트랜잭션이 진행되는 과정에서 저장점을 만들어 트랜잭션이 실패하거나 트랜잭션 완료 후 특정 시점으로 돌아가기 위한 지점을 말합니다.