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) 분산 데이터베이스
- 네트워크를 통하여 연결된 여러 개의 컴퓨터에 데이터가 분산된 데이터베이스
- 목표: 위치 투명성, 중복 투명성, 병행 투명성, 장애 투명성
- 구성 요소: 분산 처리기, 분산 데이터베이스, 통신 네트워크
'오공완' 카테고리의 다른 글
정처기 4과목: 운영체제 (0) | 2024.02.22 |
---|---|
정처기 4과목: 프로그래밍 언어 활용 (0) | 2024.02.22 |
정처기 3과목: 자료 구조 (0) | 2024.02.21 |
자바스크립트: 문서 객체 모델(DOM) (0) | 2024.02.20 |
스프링 부트3 시작하기 (0) | 2024.02.05 |