회복 (Recovery) : 트랜잭션 처리를 수행하는 도중 장애 발생으로 데이터베이스 손상시 이전 상태로 복구 장애 유형 실행 장애: 무결성 규정 위반 등 연산이 실패 트랜잭션 장애: 트랜잭션 내부의 비정상적인 상황으로 프로그램 실행이 중지 시스템 장애: 하드웨어 오동작 미디어 장애: 저장장치인 디스크 손상으로 데이터베이스의 물리적 손상 Redo, Undo Redo 장애 발생 시점 기준 이미 완료된 트랜잭션에 대해서 로그 파일을 읽어서 복구 변경되는 내용은 로그 파일에 기록 로그 레코드 순차적 실행 Undo 장애 발생 시 진행중이던 트랜잭션은 수행 이전 상태로 복구 장애가 발생하면 변경된 모든 내용 취소 로그 레코드 역순 실행 회복 기법 1. 로그 기반 회복 기법 - 지연 갱신 (Deferred Upda..
트랜잭션(Transaction) : 데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위 (작업 단위: 많은 SQL 명령문들을 사람이 정하는 기준에 따라 정하는 것) 트랜잭션의 특징 - 복구 및 병행 수행 시 처리되는 작업의 논리적 단위 - 하나의 트랜잭션은 COMMIT 되거나 ROLLBACK 됨 - 일반적으로 회복의 단위임 트랜잭션의 성질 (ACID) 원자성 (Atomicity): 트랜잭션은 모두 DB에 반영이 되거나 모두 반영되지 않음 일관성 (Consistency): 트랜잭션이 완료되면 DB는 일관성 있는 상태를 유지함 격리성 (Isolation): 트랜잭션 수행 중 다른 트랜잭션이 끼어들 수 없음 영속성/지속성 (Durability): 트랜잭션의 결과는 영구적으로 반영됨 트랜잭션의 연산과 상태..
ARP 프로토콜 (Address Resolution Protocol) : 통신과정중 사용자는 목적지의 IP주소를 입력함, 해당 IP주소에 맞는 MAC주소를 가지고 오는 프로토콜 IP 주소 → MAC 주소 RARP (Reverse Address Resolution Protocol) MAC 주소 → IP 주소 IP주소 (Internet Protocol Address) 네트워크 계층(L3)에서 사용하는 인터넷에 연결되어 있는 모든 호스트나 라우터 장비의 인터페이스에 할당된 논리 주소 MAC주소 (Media Access Control Address) 데이터링크 계층(L2)에서 사용하는 네트워크 하드웨어에 할당된 물리 주소 ARP 동작 과정 1. 송신자는 목적지의 IP주소를 지정하여 패킷을 보냄 2. IP 프로토..
뷰 (View) : 사용자에게 자료를 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 가상 테이블 (테이블은 디스크 공간이 할당되어 데이터를 저장함 / 뷰는 데이터 딕셔너리 테이블에 뷰에 대한 정의만 저장) 물리적으로 존재하지 않고 논리적 데이터 독립성을 가짐 정의된 뷰를 다른 뷰의 정의의 베이스가 될 수 있음 뷰를 삭제하면 그 뷰를 베이스로 정의된 뷰도 자동 삭제됨 기본키를 포함한 속성 집합으로 뷰를 구성해야만 삽입, 삭제, 갱신 연산이 가능 DML 구문 적용 시 기본 테이블 데이터도 변경됨 변경 연산(삽입, 삭제, 갱신) 불가능한 경우 - 뷰의 열이 산술식(상수, 연산자, 함수) - 집단함수, distinct, group by 등이 사용되어 정의된 뷰 - 두 개 이상의 테이블과 관련되어..
반정규화 : 정규화로 데이터 조회 비용이 늘어남, SELECT 속도 향상을 위해 중복을 허용하여 DB 구조 재조정 반정규화 방법 테이블 병합 두 테이블이 조인되어 사용하는 경우가 많으면, 성능 향상을 위해 하나의 테이블로 병합하여 사용 고려사항 조회가 간편하지만 레코드(row) 증가로 데이터 처리량 증가 입력, 수정, 삭제 규칙이 복잡해질 수 있음 NOT NULL, DEFAULT, CHECK 등 constraint 설계가 어려움 테이블 분할 수직 분할 테이블에 속성이 너무 많을 경우, 칼럼을 분할하여 새로운 테이블을 만드는 것 UPDATE/SELECT 자주 되는 속성 / 크기가 큰 속성 / 보안 적용이 필요한 특정 속성을 분할 수평 분할 레코드별 사용 빈도에 따라 레코드를 기준으로 테이블 분할 고려사항 ..
정규화 이상현상이 있는 릴레이션을 다수의 릴레이션으로 분리하는 과정 무결성 유지, 데이터 일관성🔼, 모델의 응집도🔼 제 1 정규화 (1NF) 모든 속성이 원자값으로 이루어짐 여러개의 주문상품이 하나의 칼럼에 들어가있어 제 1 정규형을 만족시키지 못함 제 1 정규화하여 분리 가능 제 2 정규화 (2NF) 모든 속성이 기본키에 대해 완전 함수 종속을 만족함 기본키 = (고객ID, 상품ID) (주문 상품), (가격) 속성은 기본키의 부분집합인 (상품ID)만 알아도 식별가능하므로 기본키에 부분 함수 종속 상품 테이블을 별도로 분리하여 제 2 정규화 가능함 제 3 정규화 (3NF) 모든 속성이 기본키에 대해 이행 함수 종속이 되지 않음 종속성: 고객ID -> 등급, 등급 -> 할인율 일 때, 고객ID -> 할인율..
함수 종속성 (Functional Dependency) : 속성들 간의 종속 관계 Y는 X에 함수 종속 = X -> Y: X의 값에 의해 Y의 값이 오직 하나로 결정됨 X = 결정자 / Y = 종속자 완전 함수 종속 : 종속자가 기본키에 종속되며, 기본키를 구성하는 모든 속성이 포함된 기본키의 부분집합에 대해 종속됨 ex) 릴레이션의 기본키 = (고객ID, 상품ID) (수량), (구매 금액) 속성은 기본키를 구성하는 속성 (고객ID, 상품ID)를 모두 알아야 식별가능하므로 기본키에 완전 함수 종속 부분 함수 종속 : 종속자가 기본키가 아닌 다른 속성에 종속되거나, 기본키를 구성하는 속성들 중 일부에만 종속됨 ex) (주문 상품) 속성은 기본키의 부분집합인 (상품ID)만 알아도 식별가능하므로 기본키에 부분..
정규화를 거치지 않고 DB에 데이터들이 불필요하게 중복되어 릴레이션 조작시 발생하는 이상현상 삽입이상 (Insertion Anomaly) : 삽입할 때 불필요한 데이터를 추가해야 삽입할 수 있는 현상 ex) 테이블에 경영학과를 추가할 때, 학생의 정보(불필요한 데이터)가 있어야 함 삭제 이상 (Delete Anomaly) : 삭제할 때 원하지 않는 값이 연쇄 삭제됨 ex) 테이블에서 학생을 삭제할 때, 학과의 정보가 삭제됨 갱신 이상 (Update Anomaly) : 중복된 데이터 중 일부만 변경되어 데이터에 모순이 일어나는 현상 ex) 컴퓨터공학의 학과명이 소프트웨어학으로 변경되는 경우, 1000개의 데이터를 모두 변경해야 함 학생 테이블, 학과 테이블 두 개의 테이블로 분리하여 갱신 이상 방지