1. 정보시스템이란 ?
조직에서 필요한 데이터들을 수집, 저장, 가공하여 운영에 필요한 정보를 제공하는 시설과 장비
2. 데이터베이스란 ?
여러 사람이 사용할 수 있도록 데이터를 저장하고 통합해서 운영하는 공유 데이터의 집합 (정보시스템)
3. 데이터베이스의 특징
4. DBMS
데이터베이스 관리 시스템(DataBase Management System)은 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어
5. DBMS의 기능 중요 !!
① 데이터 정의 - DDL
② 데이터 조작 - DML
③ 데이터 제어 - DCL, 무결성 관리, 보안권한검사, 병행제어)
6. 3단계 스키마 구조 중요 !!
① 외부 스키마 - 사용자 / 응용프로그램이 접근, 여러 개, View라는 가상 테이블
② 개념 스키마 - DB의 전체적인 논리적 구조, 외부 스키마 통합, 개체간 관계 및 제약조건
③ 내부(물리)스키마 - 물리적 저장 형태, 저장 장치 측면
* 스키마 - 데이터베이스의 개체, 속성, 관계, 제약조건등에 대해 정의한 것
7. 관계형 데이터베이스 용어
① 릴레이션 = 테이블
② 행 = 레코드 = 튜플 = 기수(개수) = 카디널리티(개수)
③ 열 = 속성 = 컬럼 = 필드 = 차수(개수)
④ 도메인 - 속성이 가질 수 있는 모든 원자값의 집합(범위)
8. SQL 이란 ?
RDBMS의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다.
9. SQL의 원리
관계 대수 + 관계 해석 = 비절차적 언어
관계 대수 - 절차적 (What + How)
① 일반(집합) 연산 - 합(union), 교(intersection), 차(difference), cartesian product
② 순수 연산 - select, project, join, division
관계 해석 - 비절차적 (What)
10. SQL 종류 중요 !!
① DDL - create, alter, drop
② DML - select , insert, update, delete
③ DCL - grant, revoke
④ TCL - commit, rollback
11. 와일드카드 문자
① %김% : 앞뒤 0~n개의 단어를 포함하고 사이에 '김'이라는 단어 포함하는 데이터 조회
② _길동 : 지정된 위치에 _ 의 개수만큼 단어를 포함하는 데이터 조회 (홍길동)
③ [김이 ] : 김길동, 이길동 등이 조회됨
12. Null 데이터 확인문
13. 테이블 생성 시 제약조건
① Primary key - 주키
② Foreign key - 외래키
③ Unique - 고유값
④ Not null - null 값 허용 X
14. 시스템 카탈로그
데이터베이스의 객체와 구조들에 관한 모든 데이터 (메타 데이터)를 포함하는 시스템 테이블
1. 트랜잭션이란 ?
데이터베이스의 상태를 변화시키는 논리적 업무 처리(기능) 단위로써 일련의 연산 집합이다
2. 트랜잭션의 특징 중요!!
① 원자성 (Atomicity) - 트랜잭션 내의 모든 명령은 모두 수행 또는 모두 수행되지 않는다
② 일관성 (Consistency) - 트랜잭션 처리 전과 후에 DB의 일관된 상태는 같아야 한다
③ 격리성 (Isolation) - 트랜잭션 실행 시 다른 트랜잭션의 간섭을 받지 않아야 한다
④ 영속성 (Durability) - 트랜잭션의 완료 결과가 데이터베이스에 영구히 기억되어야 한다
3. 트랜잭션의 상태변화
4. 트랜잭션 병행제어란 ?
동시에 여러 개의 트랜잭션을 병행 수행할 때 트랜잭션들이 DB의 일관성을 파괴하지 않도록 트랜잭션 간의 상호작용을 제어하는 것
5. 트랜잭션 병행제어 기법
① 2단계 잠금 기법 (Two Phase Locking) - 확장단계 / 축소단계
② 타임 스탬프 기법 : 도착순으로 순서 번호 부여
③ 검증 기법 : 메모리상에서 복사본을 수행해본 후에 적용
6. 병행제어를 하지 않을 경우 발생하는 문제점
① 갱신 분실 (Lost update) - 2개 이상의 트랜잭션이 같은 데이터를 갱신할 때 문제점
② 오손 판독 (Dirtyread) - 아직 commit 되지 않은 데이터를 읽을 때 발생하는 문제점
③ 연쇄 복귀 (Cascading rollback) - 다른 트랜잭션도 rollback되는 문제점
7. 트랜잭션 회복 (Recovery)
① 지연 갱신 - Redo ( 나중에 commit 시켜 아직 적용 안된 상황)
② 즉시 갱신 - Redo / Undo 둘 다 수행 (즉시 commit 시키므로)
③ 그림자 페이지
1. 뷰 (View)란 ?
허용된 자료만을 제한적으로 사용자에게 보여주는 가상(논리) 테이블 (외부 스키마)
2. 인덱스 (Index)란 ?
데이터를 빠르게 식별할 수 있도록 컬럼값과 레코드의 논리적인 주소를 별도의 저장구조로 저장
3. 해시 인덱스
① 버킷 (Bucket) - 슬롯의 집합
② 슬롯 (Slot) - 1개의 해시 레코드 저장 공간
③ 충돌 (Collision) - 해시 값이 같은 경우 발생
④ 동거자 = 동의어 (Synonyms) - 충돌이 일어난 레코드들
⑤ 오버플로우 - 해시 테이블에 들어갈 자리가 없는 상황
4. 해시 함수 종류
① 계수 분석 - 분포
② 제산법 - 나누기
③ 제곱법 - 곱하기
④ 폴딩 - 레코드 키를 여러 부분으로 나누고 나눈 부분의 각 숫자를 더하거나 XOR
⑤ 기수 변환 -진수를 다른 진수로 변환
⑥ 대수적 코딩 - 각자리 비트수를 다항식으로 간주하여 다항식 연산
5. 클러스터 (Cluster)
물리 저장 공간에서 그룹 형태로 같이 저장 하는 기법
6. 파티션 (Partition)
저장 되는 물리적 공간을 아예 별도로 두는 기법
7. ORM (Object Relation Mapping)
클래스(Object)와 데이터베이스의 테이블(Relation)을 자동으로 Mapping하는 기법