본문 바로가기

데이터베이스 Database

(16)
Chapter 14 회복과 병행 제어 트랜잭션(Transaction) 데이터베이스에 대한 작업의 단위 e.g. 은행의 계좌이체, 입금, 계좌조회 / 학사업무 시스템의 수강 신청, 수강조회 등 하나 이상의 SQL문으로 이루어짐 트랜잭션의 특성(property) - ACID 성질 원자성(atomicity): 전부 아니면 전무(all or nothing) 일관성(consistency) 격리성(isolation) 영속성(durability) 트랜잭션의 종료 트랜잭션의 종료는 다음 중 하나가 되어야 함 Commit 트랜잭션의 성공적인 종료를 나타냄 트랜잭션 수행 도중 변경된 내용은 반드시 영속적으로 저장되어야 함 Rollback 트랜잭션이 실패하였음을 나타냄 트랜잭션의 실행 이전 상태로 데이터베이스의 상태가 복구되어야 함 트랜잭션의 상태 활동(act..
Chapter 13 무결성과 보안 무결성(Integrity) 데이터가 정확하고(correct) 모순이 없이 일관성 있는(consistent) 상태 예) 학생의 학년(year) 값은 1, 2, 3, 4 중의 하나여야 함 무결성 규정 시 구성 요소 규정 이름 검사 시기 제약 조건 위반 조치 무결성의 종류 도메인 무결성(domain integrity): 속성의 값은 그것의 도메인(타입)에 해당되는 값이어야 함 릴레이션 무결성 개체 무결성(entity integrity): 기본키는 널이 될 수 없음 참조 무결성(referential integrity): 외래키 제약 조건 사용자 정의 무결성(user defined integrity) 무결성의 구분 상태(state) 제약 vs. 과도(transition) 제약 상태 제약: 데이터 값이 만족해야 할..
Chapter 10 데이터베이스 저장구조 데이터베이스의 성능 일반적으로 데이터베이스는 디스크에 저장됨 데이터베이스의 성능은 디스크 입출력(Disk Input/Output)의 효율성에 달려 있음 디스크 접근 속도: 수십 miliseconds 메인 메모리 접근 속도: 수십 nanoseconds 데이터베이스 성능 → 디스크 입출력 최소화 하드 디스크 임의 접근(Random Access) 가능 디스크의 구조 블록(Block, 디스크 IO의 단위)은 섹터들로 구성 강의 자료 참고 디스크 접근시간 디스크 접근 → 원하는 면, 원하는 트랙, 원하는 섹터 접근시간(Access Time) 탐구 시간(Seek Time): 원하는 트랙까지 헤드를 움직이는 데 소요되는 시간 회전 지연 시간(Rotational Delay): 원하는 섹터까지 회전되는 데 소요되는 시간..
Chapter 9 데이터베이스 설계 데이터베이스 생명주기 데이터베이스 설계 순서 요구조건 분석(Requirement analysis): 목표 데이터베이스 시스템의 사용자를 식별하고 원하는 용도를 파악하는 과정 정보의 내용 처리 요구조건 파악(분석) 주요 응용분야 파악 사용자 그룹 식별 사용자별 기능(업무) 파악 데이터의 종류, 용도, 처리 방법, 데이터 흐름 트랜잭션 입출력, 실행 빈도, 데이터 갱신 빈도, 데이터량 파악 기관의 경영 목표 및 제약 조건 식별 조직의 경영목표, 정책, 관리, 기획과 관련한 설계 범위 설정 명세 작성 정보 내용 및 처리 요구 조건(데이터, 트랜잭션, 처리 특성 등) 명세 검토 최종적으로 시스템 명세(System Specification) 확정 개념적 설계 개념적 스키마 모델링 데이터 구조 및 표현 중점(데이터..
Chapter 8 ER 모델 ✍ 보호되어 있는 글입니다.
Chapter 7 데이터 종속성과 정규화 ✍ 설계의 예 잘못된 설계로 인한 이상(Anomaly) 삭제 이상(deletion anomaly) 연쇄 삭제(triggered deletion)를 유발 e.g. 200번 학생이 'C123' 과목 등록을 취소 → 200번 학생의 학년정보 소실 하나의 정보(데이터)를 삭제하면 다른 정보(데이터)도 같이 사라짐 삽입 이상(insertion anomaly) 학번이 600번, 이름이 홍길동, 2학년, 전기과인 학생 정보(투플)를 삽입 e.g. insert into 수강 values (600, 'NONE', 'N', 2, '홍길동', '전기') → 불필요한 정보(임시과목번호)를 채워서 삽입해야 함 갱신 이상(update anomaly) e.g. 400번 '송병길'의 학년을 4에서 3으로 변경 → 4개의 투플을 모두 갱..
Chapter 6 SQL - JDBC를 이용한 자바응용프로그램 개발 DB 인터페이스 응용프로그램 개발을 위한 DB 인터페이스의 종류 내장 SQL 방식(Embedded SQL) 응용프로그램 개발 언어(호스트 언어) + SQL Precompile이 필요 ex) ESQL/C, ESQL/Java CLI(Call Level Interface) 방식 함수(메소드)를 사용하여 DBMS 접근 대표적인 예: DB2 CLI ODBC, JDBC로 발전함 ESQL/C 예 sample.ec rc = EmbAppInit(dbAlias, user, pswd); if(rc != 0) return(rc); EXEC SQL SELECT FIRSTNAME INTO :firstname FROM employee WHERE LASTNAME = 'JOHNSON'; EMB_SQL_CHECK("SELECT stat..
Chapter 6 SQL - 트리거 Trigger 트리거(Trigger)란? 테이블에 이벤트(event)가 발생하면 자동으로 실행되는 작업 적용 단위 행 트리거: 테이블 내에 변경되는 행에 대해 각각 실행됨 문장 트리거: INSERT, UPDATE, DELETE 문장 전체에 대해 실행 트리거의 구성요소 이벤트: 테이블에 INSERT, UPDATE, DELETE가 사용되는 경우 조건(condition): optional, 조건이 만족하는 경우에만 트리거를 수행 동작(action): 트리거가 수행해야할 작업 트리거의 용도: 데이터베이스 작업을 제한하거나, 작업의 기록(log), 작업에 대한 감사(audit)를 수행하기 위해 사용 트리거의 정의 CREATE [OR REPLACE] TRIGGER trigger_name ON table_name [WHEN con..