반응형

CS/DB 24

[DB] 연산자

개요 데이터베이스에서 쓰이는 연산자들을 정리한 문서이다. 연산자는 필수연산자와 편의를 위해 유도된 연산자로 나뉜다. 필수연산자 셀렉션, 프로젝션, 합집합, 차집합, 카티션 곱 편의를 위해 유도된 연산자 조인, 디비전 셀렉션 셀렉션 조건을 만족하는 튜플들의 집합을 생성한다. 입력 릴레이션을 하나 받는 단항 연산자이다. 결과 릴레이션의 차수는 입력 릴레이션의 차수와 같고, 결과 릴레이션의 카디널리티는 입력 릴레이션보다 작거나 같다. 조건을 만족하는 튜플이 없을 수도 있다. (카디널리티가 0이 될 수 있다.) 3번 부서에 소속된 사원(DNO=3)을 셀렉션하는 예시이다. 프로젝션 애트리뷰트의 부분 집합을 생성한다. 입력 릴레이션을 하나 받는 단항 연산자이다. 결과 릴레이션의 차수는 입력 릴레이션의 차수와 작거나..

CS/DB 2022.03.23

[DB] 무결성 제약 조건

개요 무결성 제약조건이란, 일관된 데이터베이스 상태를 정의하는 규칙들을 묵시적 또는 명시적으로 정의한 것이다. DB가 갱신될 때, DBMS가 자동적으로 조건을 검사하므로 응용 프로그램들은 조건을 검사할 필요는 없다. 목록 도메인 제약조건 1. 각 애트리뷰트 값은 원자값이어야 한다. 2. 애트리뷰트 값의 디폴트 값, 가능한 값들의 범위 등을 지정할 수 있다. 3. 데이터 형식을 통해 값들의 유형을 제한하고, CHECK 제약 조건을 통해 값들의 범위를 제한할 수 있다. 위의 예시에서 ID 애트리뷰트는 int로 유형을 제한, 또한 NULL일 수 없다. Age 애트리뷰트는 데이터 형식과 CHECK 제약 조건을 통해 18 이상의 정수로 범위를 제한했다. CHK_Person처럼 여러 개의 애트리뷰트에 걸쳐 도메인 ..

CS/DB 2022.03.18

[DB] 릴레이션 키

개요 릴레이션에서 키란, 각 튜플을 고유하게 식별할 수 있는 하나 이상의 애트리뷰트들의 모임이다. 슈퍼 키, 후보 키, 기본 키, 대체 키, 외래 키가 있다. 슈퍼 키 한 릴레이션 내의 특정 튜플을 고유하게 식별하는 하나의 애트리뷰트 또는 애트리뷰트들의 집합이다. 튜플들을 고유하게 식별하는데 꼭 필요하지 않은 애트리뷰트들을 포함할 수 있다. 후보 키 각 튜플을 고유하게 식별하는 최소한의 애트리뷰트들의 모임이다. 슈퍼 키와의 차이점은 후보 키는 최소성을 만족해야 한다는 것 후보 키도 두 개 이상의 애트리뷰트로 이루어질 수 있다. 이 경우 복합 키라고도 부른다. ex) 수강 릴레이션의 학번-과목번호는 재수강이 없는 한 후보 키가 될 수 있다. 위 그림에서 학번, 과목번호는 같은 값이 여러 개 존재 할 수 있..

CS/DB 2022.03.17

[DB] 트랜잭션

개요 트랜잭션이란, DBMS에서 데이터베이스의 상태를 변경시키는 상호작용의 단위, 또는 일련의 연산들을 뜻한다. 성질 1. 원자성(Atomicity) 트랜잭션 연산은 DB에 전부 반영되든지, 전혀 반영되지 않든지 둘 중 하나만 해야함. 모든 명령이 완벽히 수행되어야함. 만약 한 명령이라도 수행 중 오류가 발생하면 지금까지 실행했던 트랜잭션 전부가 취소 되어야함. 2. 일관성(Consistency) 트랜잭션 실행이 성공하면, 언제나 일관성 있는 상태로 변화해야 함. 시스템이 가지고 있는 고정요소가 트랜잭션 수행 전 / 후 상태가 같아야 함. 3. 독립성(Isolation) 한 트랜잭션 실행 중에 다른 트랜잭션 연산이 끼어들 수 없음. 수행 중인 트랜잭션이 완전히 종료될 때 까지, 트랜잭션 끼리 서로를 참조..

CS/DB 2022.03.15
반응형