1. 자료 처리

1) 정보 처리 시스템

- 정보 시스템이 사용하는 데이터를 처리하는 시스템(정보 시스템의 서브 시스템)

- 일괄 처리 시스템(일정 기간 자료 수집), 온라인 처리 시스템(발생 즉시 결과 출력), 분산 처리 시스템(네트워크로 연결)

2) 데이터베이스

- 통합된 데이터, 저장된 데이터, 운영 데이터, 공용 데이터

- 특성: 실시간 접근성, 내용에 의한 참조(주소/위치 x), 동시 공유, 계속적 변화

- 구성: DBMS, 스키마, 데이터베이스 언어, 데이터베이스 사용자

3) DBMS(데이터베이스 관리 시스템)

- 필수 기능: 정의 기능(Definition), 조작 기능(Manipulation), 제어 기능(Control)

4) 데이터웨어하우스(Data Warehouse)

- 의사결정 지원을 위한 주제 지향적, 통합적, 시계열적, 비휘발적인 데이터 집합

- OLAP(On-Line Analytical Processing): 대용량 데이터를 고속으로 처리하며 쉽고 다양한 관점에서 추출, 분석할 수 있도록 지원하는 데이터 분석 기술

- 연산 종류: Roll-Up, Drill-Down, Dicing, Slicing

 

2. 데이터베이스의 구성, 모델

1) 스키마(Schema)

- 데이터베이스의 구조(개체, 속성, 관계)에 대한 정의

- 3계층: 외부 스키마, 개념 스키마, 내부 스키마

- 개념 스키마: 데이터베이스 전체를 정의한 것으로 데이터 개체, 관계, 제약조건, 접근 권한, 무결성 규칙 등을 명세, 범기관적 입장에서 데이터베이스를 정의

- 언어: 데이터 정의어(DDL, Data Definition Languague), 데이터 조작어(DML, Data Manipulation Language), 데이터 제어어(DCL, Data Control Language)

- 사용자: 데이터베이스 관리자(DBA, Database Administrator), 응용 프로그래머, 일반 사용자

2) 데이터 모델

- 구성 요소: 데이터 구조(Structure), 연산(Operations), 제약조건(Constraints)

- 구분: 개념적 모델(E-R 다이어그램), 논리적 모델(계층형, 네트워크형, 관계형, 객체지향형)

3) E-R 다이어그램

- 정보 공학 방법론에서 데이터베이스 설계의 표현으로 사용하는 모델링 언어로 P.Chen이 처음 제안

- 사각형(개체), 마름모(관계), 타원(속성), 실선(개체 입과 속성을 연결), 2중 타원(다중값 속성)

 

3. 관계형 데이터베이스 모델

1) 모델 구조

- 튜플(Tuple): 테이블의 행(Row), 파일 구조의 레코드(Record), 카디널리티(튜플의 수)

- 속성(Attribute): 테이블의 열(Column), 파일 구조의 항목(Item)/필드(Field), 차수(속성의 수)

- 도메인(Domain): 하나의 속성이 가질 수 있는 원자값들의 집합

2) 릴레이션의 특징

- 튜플의 유일성, 튜플의 무순서성(순서 없음), 속성의 원자성, 속성의 무순서성(순서 의미 없음)

 

4. 키의 종류와 무결성

1) 슈퍼키(Super Key)

- 두 개 이상의 속성으로 구성된 키 또는 혼합키

- 모든 튜플에 대해 유일성은 만족하지만 최소성은 만족하지 않음

2) 후보키(Candidate Key)

- 모든 튜플을 유일하게 식별할 수 있는 하나 또는 몇 개의 속성 집합

- 모든 튜플에 대해 유일성과 최소성 모두 만족

- 슈퍼키에서 구해진 속성, 속성 집합 중 가장 적은 속성 집합(최소성)이 후보키가 됨

3) 기본키(Primary Key)

- 후보키 중에서 대표로 선정된 키, Null 값을 가질 수 없음, 후보키 중 가장 적합한 속성 또는 속성 집합을 선택

4) 외래키(Foriegn Key)

- 다른 테이블의 기본키로 사용되는 속성

5) 무결성

- 개체 무결성(키본키는 Null 값이나 중복값을 가질 수 없음), 참조 무결성, 도메인 무결성

 

5. 데이터베이스 설계 단계

1) 요구조건 분석

- 사용자로부터 요구조건 수집과 명세서 작성

2) 개념적 설계

- 목표 DBMS에 독립적인 개념 스키마 설계

- 개념 스키마 모델링(E-R 다이어그램 작성)과 트랜잭션 모델링 병행 수행

3) 논리적 설계

- 목표 DBMS에 종속적인 논리적 스키마 설계, 스키마의 평가 및 정제

- 논리적 데이터 모델로 변환 및 트랜잭션 인터페이스 설계

4) 물리적 설계

- 목표 DBMS에 종속적인 물리적 구조 설계

- 저장 레코드 양식 설계, 레코드 집중의 분석/설계, 액세스 경로 인덱싱, 클러스터링, 해싱 등의 설계

- 접근 경로 설계 및 트랜잭션 세부 설계

5) 데이터베이스 구현

- 목표 DBMS의 DDL로 스키마를 작성

- 데이터베이스에 등록 후 트랜잭션을 작성

 

6. 데이터베이스 정규화(Normalization)

1) 개념

- 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어 가는 과정

- 좋은 데이터베이스 스키마를 생성하고 불필요한 데이터의 중복을 방지

2) 목적

- 데이터 구조의 안정성 최대화, 중복 데이터의 최소화, 수정 및 삭제 시 이상 현상 최소화, 테이블 불일치 위험 간소화

3) 이상 현상(Anomaly)

- 릴레이션 조작 시 데이터들이 불필요하게 중복되어 예기치 않게 발생하는 곤란한 현상

- 종류: 삽입 이상, 삭제 이상, 갱신 이상

4) 함수적 종속

- 개체 내에 존재하는 속성 간의 관계를 종속적인 관계로 정리하는 방법

- 데이터 속성들의 의미와 속성 간의 상호 관계로부터 도출되는 제약조건

- 기준값을 결정자, 종속되는 값을 종속자라고 함

5) 부분 함수적 종속

- 복합 속성 (A, B)에 대하여 A → C가 성립할 때

6) 이행 함수적 종속

- 속성 X, Y, Z가 주어졌을 때 X → Y, Y → Z하면 X → Z가 성립됨

 

7. 정규화 과정

1) 1NF, 1정규형

- 도메인이 원자값만으로 되어 있는 릴레이션

2) 2NF, 2정규형

- 부분적 함수 종속 제거

3) 3NF, 3정규형

- 이행적 함수 종속 제거

4) BCNF, 보이스/코드 정규형

- 결정자이면서 후보키가 아닌 함수 종속 제거

5) 4NF, 4정규형

- 다치 종속 제거

6) 5NF, 조인 종속성 제거

- 조인 종속성 제거

 

8. 관계 대수와 연산자

1) 관계 대수(Relational Algebra)
- 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적인 방법

- 주어진 릴레이션 조작을 위한 연산의 집합

2) 관계 해석 자유 변수

- ∀: for all(모든 것에 대하여), 전칭 정량자(Universal quantifier)

- ∃: "There exists", "For Some", 존재 정량자(Existential quantifier)

3) 순수 관계 연산자의 종류

- Select(선택): 튜플 집합을 검색, 수평적 연산, 시그마

- Project(추출): 속성 집합을 검색, 수직적 연산, 파이

- Join(결합): 두 릴레이션의 공통 속성을 연결

- Division(나누기): 두 릴레이션에서 특정 속성을 제외한 속성만 검색

 

9. SQL, DDL, DCL, View

1) SQL(Structed Query Language)

- 관계형 데이터베이스의 표준 질의어

- 종류: DDL, DML, DCL

2) DDL(Data Definition Language, 데이터 정의어)

- 데이터 베이스의 정의/변경/삭제에 사용되는 언어

- 논리적 데이터 구조와 물리적 데이터 구조 간의 사상을 정의

- 종류: CREATE, ALTER, DROP

3) DCL(Data Control Language)

- 데이터 제어 정의 및 기술에 사용되는 언어

- 무결성을 유지하고 데이터 복구 및 병행 제어

- 종류: COMMIT, ROLLBACK, GRANT, REVOKE

4) 뷰(View)

- 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 기본 테이블에서 유도되는 가상 테이블

- 생성 시 CREATE문, 검색 시 SELECT문 사용

- 정의 변경 시 ALTER문을 사용할 수 없고 DROP문을 이용

- 뷰를 이용한 또 다른 뷰 생성 가능, 하나의 뷰 제거 시 그 뷰를 기초로 정의된 다른 뷰도 함께 삭제됨

5) 시스템 카탈로그(System Catalog)

- 시스템 자신이 필요로 하는 여러 가지 객체에 관한 정보를 포함하고 있는 시스템 데이터베이스

- 데이터 사전, 메타 데이터라고도 함

 

10. 데이터베이스 조작

1) DML(Data Manipulation Language, 데이터 조작어)

- 데이터의 검색/삽입/삭제/변경에 사용되는 언어

- 사용자와 DBMS 간의 인터페이스를 제공

- 종류: SELECT(검색), INSERT(삽입), DELETE(삭제), UPDATE(내용 변경)

- BETWEEN: 구간값 조건식, ex) WHERE 점수 BETWEEN 80 AND 85;

 

11. 트랜잭션(Transaction)

- 하나의 논리적 기능을 수행하기 위한 작업 단위

- 데이터베이스에서 일어나는 연산의 집합

1) 특성

- 원자성(Automicity): 완전하게 수행이 완료되지 않으면 전혀 수행되지 않아야 한다

- 일관성(Consistency): 시스템의 고정 요소는 트랜잭션 수행 전후가 같아야 한다

- 격리성(Isolation, 고립성): 트랜잭션 실행 시 다른 트랜잭션의 간섭을 받지 않아야 한다

- 영속성(Durability, 지속성): 트랜잭션의 완료 결과가 데이터베이스에 영구히 기억된다

2) CRUD Matrix

- 데이터베이스에 영향을 주는 생성(Create), 읽기(Read), 갱신(Update), 삭제(Delete) 연산으로 프로세스와 테이블 간에 매트릭스를 만들어서 트랜잭션을 분석하는 도구

3) 즉각 갱신법

- 데이터를 갱신하면 트랜잭션이 완료되기 전에 실제 데이터베이스에 반영하는 방법

- 회복 작업을 위해서 갱신 내용을 별도 Log로 기록해야 한다

- Redo, Undo 모두 사용 가능

4) 연산
- Commit: 트랜잭션 실행이 성공적으로 종료되었음을 선언

- Rollback: 트랜잭션 실행이 실패하였음을 선언

- Recovery: 트랜잭션을 수행하는 도중 장애로 인해 손상된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구시키는 작업

5) 상태

- 활동, 부분 완료, 완료, 실패, 철회

 

12. 병행 제어(Concurrency Control)

- 동시에 수행되는 트랜잭션들을 일관성 있게 처리하기 위해 제어하는 것

1) 목적

- 데이터베이스 공유를 최대화, 데이터베이스 일관성 최대화, 시스템 활용도 최대화, 응답시간 최소화

2) 타임 스탬프

- 트랜잭션이 DBMS로부터 유일한 타임스탬프(시간 허가 인증 도장)를 부여받는다

- 동시성 제어를 위한 직렬화 기법으로 트랜잭션 간의 순서를 미리 정하는 방법

3) 로킹(Locking)

- 하나의 트랜잭션이 데이터를 액세스하는 동안 다른 트랜잭션이 그 데이터 항목을 액세스할 수 없도록 하는 병행 제어 기법

- 2단계 로킹: 직렬성은 보장하지만 교착상태 예방은 불가능, 확장 단계와 축소 단계, 각 트랜잭션의 로크 요청과 해제 요청을 2단계로 실시

 

13. 보안, 분산 데이터베이스

1) 암호화 기법

- 비밀키(Private Key, 대칭키): 동일한 키로 데이터를 암호화하고 복호화, 속도가 빠름

- 공개키(Public Key, 비대칭키): 각기 다른 키로 데이터를 암호화하고 복호화, 키가 공개되어도 됨, 속도가 느림

2) 권한 부여 기법

- GRANT: 데이터 베이스 사용자에게 사용 권한 부여

- REVOKE: 권환 취소

- 트리거(Trigger): 연쇄 반응, 일정 작업을 수행할 때 이에 부수적으로 자동 처리되도록 하는 것

3) 분산 데이터베이스

- 네트워크를 통하여 연결된 여러 개의 컴퓨터에 데이터가 분산된 데이터베이스

- 목표: 위치 투명성, 중복 투명성, 병행 투명성, 장애 투명성

- 구성 요소: 분산 처리기, 분산 데이터베이스, 통신 네트워크

 

 

 

+ Recent posts