데이터베이스
1.데이터베이스(DB) 개념
1. 정의: 특정 조직의 업무를 수행하는데 필요한 상호 관련된 데이터들의 모임
1) 통합 데이터(Integrated Data): 검색 효율성을 위해 중보기 최소화된 데이터
2) 저장 데이터(Stored Data): 컴퓨터가 접근 가능한 매체에 저장된 데이터
3) 운영 데이터(Operational Data): 조직의 목적을 위해 존재가치가 확실하고
반드시 필요한 데이터
4) 공유 데이터(Shared Data): 여러 응용프로그램이 공동으로 사용하는 데이터
2. 특징
1) 실시간 접근성(Real Time Accessibility): 사용자 질의에 즉시 처리하여
응답
2) 계속적인 진화(Continuous Evolution): 삽입/수정/삭제를 통해 항상 최근의 정확한 데이터를 동적으로 유지
3) 내용에 의한 참조(Content Reference): 데이터 참조 시 튜플이 주소나
위치가 아닌 데이터 내용에 따라 참조
4) 동시 공유(Concurrent Sharing): 여러 사용자가 동시에 원하는 데이터를
공용
5) 데이터 논리적.물리적 독립성(Independence)
3. 데이터 언어
- DBMS와의 통신 수단
1) DDL(Data Definition Language / 데이터 정의어): DB 구축하거나
변경할 목적으로 사용하는 언어
2) DML(Data Manipulation Language / 데이터 조작어): 응용프로그램과 DBMS 사이의 인터페이스를 위한 언어
3) DCL(Data Control Language / 데이터 제어어): 보안/권한제어, 무결성, 회복, 병행제어를 위한 언어
4. 데이터베이스 사용자
1) DBA(Database Administrator): DDL과 DCL을 통해 DB를 정의하고 제어하는 사람/그룹
2) 데이터 관리자(Data Administrator): 기업 또는 조직 전반에 있는 데이터에
대한 관리 총괄/통제
3) 데이터 설계자(Data Architect): 기업 업무 수행에 필요한 데이터 구조를
체계적으로 정의하는 사람
4) 응용프로그램(Application Programmer): 호스트 프로그래밍언어에 DML을 삽입하여 DB에 접근하는 사람
5) 일반 사용자(End User): 질의어를 통해
DBMS에 접근하는 사람
2.데이터베이스 관리 시스템(DBMS: Database Management System)
1. 개념
- 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 주고 데이터베이스를 관리해주는 소프트웨어
2. 장단점
1) 장점: 논리적/물리적 독립성 보장, 공동 이용, 표준화, 무결성
유지, 실시간 처리, 중복 방지, 통합관리, 일관성 유지, 보안
유지, 최신 유지
2) 단점: 전문가 부족, 과부하, 전산화 비용 증가, 백업과 회복 어려움, 시스템 복잡
※ DSMS(Data Stream Management System)
- 통신 상 데이터 스트리밍을 통해 데이터를 처리하고 관리하는 시스템으로 동적인 데이터를 처리하는 관리 시스템
3. 스키마(Schema)
1. 정의
- 데이터베이스의 구조와 계약조건에 관한 전반적인 명세 à 데이터 사전에 저장
2. 스키마 3계층
1) 외부 스키마(External Schema): 사용자나 응용프로그래머가 각 개인 입장에서
필요로 하는 DB의 논리적 구조를 정의
2) 개념 스키마(Conceptual Schema): 개체간 관계와 제약조건을 나타내고, 접근권한, 보안정책, 무결성
규정에 관한 명세 정의
3) 내부 스키마(Internal Schema): DB의 물리적 구조 정의
※ 메타 데이터(Meta Data)
- 데이터에 관한 데이터, 실제 저장되는 데이터는 아니지만, 저장되는 데이터와 직간접적으로 관계 있는 정보를 제공하는 Data
- MARC(Machine Readable Cataloging): 목록 레코드를 식별하여 축적/유통할
수 있도록 코드화한 메타데이터
- MDR(Metadata Registry): 메타데이터의 등록과 인증을 통해 Metadata 유지/관리 및 메타데이터의 명세를 공유하는 레지스트리
4.데이터베이스 설계
- 정의: DB Schema를 개발하는 과정
1) 요구조건분석: 요구조건 명세서 작성
2) 개념적 설계: 개념스키마, 트랜잭션 모델링, ER모델
3) 논리적 설계: 논리스키마 설계, 트랜잭션
인터페이스 설계
4) 물리적 설계: 물리적 구조의 데이터로 변환
5) 데이터베이스 구현: DDL로 데이터베이스 생성, 트랜잭션
생성
5. ER모델
- 개념적 데이터 모델의 대표(1976
by Peter Chen)
1) 1:1관계: 관계에 참여하고 있는 두 개체 타입이 모두 하나씩의 개체 어커런스를 갖는
관계
2) 1:N관계: 관계에 참여하고 있는 두 개체 타입 중 한 개체 타입은 여러 개의 개체
어커런스, 다른 한 개체 타입은 하나의 개체 어커런스를 갖는 관계
3) N:M관계: 관계에 참여하고 있는 두 개체 타입 모두 여러가지의 개체 어커런스를 갖는
관계
6. 관계형데이터 모델
- 테이블 또는 릴레이션(Relation:
데이터를 원자 값으로 갖는 이차원의 테이블)의 구조로 표현하는 논리적 데이터 모델
1. 매핑룰(Mapping
Rule)
- 개념적 모델인 ER모델을 논리적 모델인 릴레이션 스키마로 변환하는 것
1) 1:1관계: 릴레이션 A의 기본키à B의 외래키 또는 릴레이션 B의 기본키à A의 외래키
2) 1:N관계: 릴레이션 A 기본키à B의 외래키
3) N:M관계: 릴레이션 A, B 기본키를
포함한 별도 릴레이션 C를 표현. 이 때 C는 교차 엔티티(또는 교차 릴레이션)
2. 식별/비식별관계
1) 식별 관계
- 개체 A, B 사이 관계에서 A개체의 기본키가 B의 외래키이면서 동시에 기본키인 경우(B는 A에 의존적)
- ER모델에서 실선으로 표현
2) 비식별 관계
- 개체 A, B 사이 관계에서 A의 기본키가 B의 비기본키 영역에서 외래키인 관계(A와 B는 독립적)
- ER모델에서 점선으로 표현
7.키의 개념과 종류
1) 슈퍼키(Super Key): 한
릴레이션 내 있는 속성들의 집합. 유일성은 만족하나 최소성은 만족 못함
2) 후보키(Candidate Key): 튜플을 유일하게 식별하기 위해 사용되는 속성들의
부분집합. 유일성과 최소성 만족
3) 기본키(Primary Key): 후보키 중 특별히 선정된 키. 중복 값 갖지 못함. Not Null.
4) 대체키(Alternate Key): 후보키 중 기본키 제외한 나머지 후보키
5) 외래키(Foreign Key): 다른 릴레이션의기본키를 참조하는 속성 또는 속성들의
집합
6) 복합키(Composite Key): 2개 이상 속성을 조합하여 만든 키
8.무결성(Integrity)
1. 개념: DB에 저장된 값과 그것이 표현하는 현실세계 실제 값이 일치하는 정확성
2. 제약조건(Constraint): DB의 정확성을 보장 위해 정확하지 않은 데이터가 저장되는 것을 방지하기 위한 제약조건
3. 종류
1) 참조무결성: 외래키 값은 null 또는
참조 릴레이션의기본키 값과 동일해야 함
2) 개체무결성: 기본키를 구성하는 어떤 속성도 null값이
될 수 없음
3) 도메인무결성: 특정 속성의 값은 그 속성이 정의된 도메인에 속한 값이어야 함
4) 관계무결성: 튜플 삽입 가능 여부 또는 튜플들 사이 관계에 대한 적설정 여부를 지정한
규정
5) Null무결성: 특정 속성 값은 null이
될 수 없음
6) Key무결성: 하나의 릴레이션에는 적어도 하나의 키가 존재 해야 함
7) 고유무결성: 특정 속성 내 각 튜플 값은 서로 달라야함
9.관계대수
1. 정의: 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 언어
2. 순수관계 연산자
1) SELECT: 수평연산. σ조건(R)
2) PROJECT: 수직연산. π속성(R)
3) JOIN: 공통속성을 중심으로 2개의 릴레이션을 하나로 합쳐 새로운 릴레이션을 만드는
연산. (R)▷◁조건(S)
※ 자연조인(NATURAL JOIN): 동등 조인의 결과 릴레이션에서 중복된 속성을 제거하여
수행하는 연산으로 동등조인에서 중복속성 중 하나를 제거
4) DIVISION: R릴레이션에서 S와 관련된 속성을 뺀 나머지. R[r÷s]S
3. 일반집합 연산자
- UNION(∪), INTERSECTION(∩), DIFFERENCE(-), CARTESIAN PRODUCT(×)
4. 관계해석
- 원하는 정보가 무엇이라는 것만 계산하여 수식을 사용하여 정의하는 비절차적 언어
10. DDL
- SCHEMA, DOMAIN, TABLE, VIEW, INDEX 정의/변경/제거
à 메타데이터. 시스템 카달로그에 저장
è CREATE(정의), ALTER(테이블 변경), DROP(삭제)
1. SCHEMA
1) 스키마 정의
- CREATE SCHEMA 스키마명 AUTHORIZATION ID;
2) 도메인 정의
- CREATE DOMAIN 도메인명
[DEFAULT 기본값] [CONSTRAINT 제약조건명 CHECK(범위 값)] ;
3) 테이블 정의
- CREATE TABLE 테이블명
(속성명1데이터타입 [NOT
NULL], 속성명2데이터타입 [NOT NULL], ... ,
PRIMARY KEY(속성명),
UNIQUE(속성명),
FOREIGN KEY(속성명) REFERENCES 참조테이블명(기본키속성명),
[ON DELETE (NO ACTION | CASCADE | SET NULL | SET
DEFAULT)]
[ON UPDATE (NO ACTION | CASCADE | SET NULL | SET
DEFAULT)]
[CONSTRAINT 제약조건명] CHECK(조건식)) ;
4)뷰 정의
- CREATE VIEW 뷰명(속성명1, 속셩명2, ...)
AS SELECT문
[WITH OPTION CHECK]
à뷰에서
사용하는 SELECET문에는 UNION 또는 ORDER BY 사용 불가
à WITH OPTION CHECK 사용한 경우 뷰 정의에 위배되는 경우 뷰 생성 안함
à뷰의속성명
미정의 시 SELECT문에 정의된 속성명 사용
※ VIEW: 하나 이상의 기본 테이블에서 유도되는 가상 테이블
5) 인덱스 정의
- CREATE [UNIQUE] INDEX 인데스명
ON테이블명(속성명ASC | DESC)
à UNIQUE: 중복 값 없는 속성으로 인덱스 정의 사용
6)트리거 정의
- CREATE TRIGGER 트리거명 [BEFORE | AFTER] [INSERT | UPDATE | DELETE] ON 테이블명
REFERENCING [NEW |OLD] TABLE AS 테이블명
FOR EACH ROW
WHEN 조건식
트리거 BODY
2. ALETER
1) ALTER TABLE 테이블명 ADD 속성명데이터타입 [DEFAULT 값] ;
2) ALTER TABLE 테이블명 ALTER 속성명 [SET DEFAULT 값] ;
3) ALTER TABLE 테이블명 DROP COLUMN 속성명 [CASCADE] ;
3. DROP
- DROP (SCHEMA
| DOMAIN | TABLE | VIEW | INDEX | TRIGGER) 이름 [CASCADE | RESTRICT] ;
- DROP CONSTRAINT 이름 ;
11. SELECT
- DB 검색 시 사용
1. SELECT (ALL
| DISTINCT | DISTINCTROW) 테이블명1.속성명1, 테이블명1.속성명2, 테이블명2.속성명3, ...
FROM 테이블명1, 테이블명2
WHERE 조건 (IS NULL | IS NOT NULL |
IN(값 또는 SELECT문)
GROUP BY 속성명
HAVING 조건
ORDER BY 속성명 [ASC | DESC] ;
12. JOIN
- 2개의 테이블에 대해 연관된 튜플들을 결합하여 하나의 새로운 릴레이션으로 반환하는
연산
1. Inner JOIN
1) Equi JOIN
- SELECT 테이블1.속성1, 테이블2.속성2
FROM테이블1, 테이블2
WHERE 테이블1.속성1=테이블2.속성2
- SELECT 테이블1.속성1, 테이블2.속성2
FROM 테이블1 NATURAL JOIN 테이블2
- SELCET 테이블1.속성1, 테이블2.속성2
FROM 테이블1 JOIN 테이블2 USING(속성명) ;
2) non-EquiJOIN
2. Outer JOIN
1) LEFT OUTER JOIN
- 좌측 전부 표시, 우측은 관계 있는 튜플만 표시
- SELECT T1.C1, T2.C2;
FROM T1 LEFT OUTER JOIN T2
ON T1.C1=T2.C2;
- SELECT T1.C1, T2.C2
FROM T1, T2
WHERE T1.C1=T2.C2(+)
;
2) RIGHT OUTER JOIN
- 우측 전부 표시, 좌측은 관계 있는 튜플만 표시
- SELECT T1.C1, T2.C2
FROM T1 RIGHT OUTER JOIN T2
ON T1.C1=T2.C2 ;
- SELECT T1.C1, T2.C2
FROM T1, T2
WHERE T1.C1(+)=T2.C2
;
3) FULL OUTER JOIN
- SELECT T1.C1, T2.C2
FROM T1 FULL OUTER JOIN T2
ON T1.C1=T2.C2;
13. DML
- INSERT, UPDATE, DELETE
- DB 사용자와 DBMS간 인터페이스 제공
1. INSERT
- 테이블에 새로운 튜플 삽입
- INSERT T1(C1, C2, C3, ...)
VALUES(data1, data2, data3, ...) ;
2. UPDATE
- 특정 튜플 내용 갱신
- UPDATE 테이블명
SET속성명=”값”
WHERE 조건 ;
3. DELETE
- 특정 튜플 삭제
- DELETE FORM 테이블명 WHERE 조건 ;
à WHERE 조건 없는 경우 모든 튜플 삭제 (테이블 삭제는 아님)
13. DCL
- COMMIT, ROLLBACK, GRANT, REVOKE
- 보안, 무결성, 회복, 병행제어, 등 정의
1. COMMIT
- 데이터베이스 조작 작업을 영구적으로 반영하여 완료
2. ROLLBACK
- 데이터베이스 조작 작업이 비정상적으로 종료 시 원래 상태로 복귀
3. GRANT
- 데이터베이스 사용자에게 권한 부여
- GRANT (DBA | RESOURCE | CONNECT)
TO id [identified by 비밀번호] ;
- GRANT (ALL | 권한 리스트) ON 개체 TO 사용자 [WITH GRANT
OPTION] ;
4. REVOKE
- 데이터베이스 사용자 권한 취소
- REVOKE (DBA | RESOURCE | CONNECT)
FROM id
- REVOKE [GRANT OPTION FOR] (ALL
| 권한 리스트) ON 개체 FROM id [CASCADE]
;
14. 이상(Anomaly)
1. 개념
- 테이블에서 일부 속성들의 종속으로 인해 데이터 중복이 발생하고, 이로 인해 테이블 조작
시 문제가 발생하는 현상
à 삽입 이상, 갱신 이상, 삭제
이상
1) 삽입 이상(Insertion
Anomaly)
- 데이터 삽입 시 의도하지 않는 값들로 인해 삽입 불가한 현상
2) 갱신 이상(Update Anomaly)
- 갱신 시 일부 튜플의 정보만 갱신 되어 정보의 불일치성이 생기는 현상
3) 삭제 이상(Deletion Anomaly)
- 한 튜플 삭제 시 의도하지 않은 값들도 같이 삭제 되는 현상
15. 정규화(Normalization)
1. 개념
- 테이블을 무손실분해햐여 이상 현상 발생 가능성을 줄이는 것
2. 정규화 과정
3. 역정규화(비 정규화)
- 데이터베이스 검색 시 자주 JOIN을 하여 검색 시 응답속도가 저하되어, 정규화에 위배가 되지만 성능 향상을 위해 테이블을 다시 합치는 것
※다치
종속
- A, B, C ⊂ R à (A, C)→B à A→B(○), A→C (X) è AB
※ 조인 종속
16. 인덱스
1. 개념
- 데이터 레코드에 빠르게 접근하기 위해 (키 값, 포인터) 쌍으로 구성되는 데이터 구조
- 색인이 없는 경우 (Full) Table scan 발생
2. 클러스터드 인덱스(Clustered
Index)
- 인덱스 키의 순서에 따라 데이터 정렬되어 저장되는 방식
- 검색 속도는 빠르지만, 삽입/삭제 시 순서
유지 위해 데이터 재 정렬 필요
- 1개의 릴레이션에 1개의 인덱스 존재
3. 넌클러스터드 인덱스(Non-clustered
Index)
- 인덱스의 키 값만 정렬. 실제 데이터는 정렬 안됨
- 검색 속도는 느림
- 1개의 릴레이션에 다수의 인덱스 존재
※ 행 이주
- Varchar 타입으로 정의된 컬럼에 데이터 저장 후 꽉 찬 상태에서 다른 데이터 입력 시 튜플이 다른 블록으로 이동하는 현상
※ 분포도(선택성, Selectivity)
17. 트랜잭션(Transaction)
1. 개념
- DB에서 하나의 논리적 기능을 수행하기 위한 일련의 연산 집합으로서 작업의 논리적 단위
2. 특징
1) 원자성(Atomicity): 트랜잭션 연산은 DB에
모두 반영 또는 반영되지 않아야 함
2) 일관성(Consistency): 트랜잭션이 성공적으로 완료되면 언제나 일관성 있는 DB 상태로 변환
3) 독립성(Isolation): 한 트랜잭션이 갱신중인 데이터를 다른 트랜잭션이 접근하지
못하도록 하는 것
4) 영속성(Durability): 트랜잭션이 성공적으로 실행 완료 후 시스템 오류가 발생하더라도
트랜잭션에 의해 변경된 내용은 계속 보존
3. Commit/Rollback
1) Commit: 트랜잭션 처리가 정상적으로 종료되어 변경 내용을 DB에 반영하는 연산
2) Rollback: 트랜잭션 처리가 비정상적으로 종료되어 DB 일관성 깨진 경우 모든
변경 작업을 취소하고, 이전 상태로 되돌리는 연산
18. 병행제어
1. 개념
- 트랜잭션이 병행 수행할 때 DB의 일관성을 파괴하지 않도록 트랜잭션 간 상호작용을 제어하는
기술
2. 필요성
1) 갱신 분실: 갱신 결과 일부 없어지는 결과 방지
2) 모순성: 데이터들이 상호 일치하지 않아 모순되는 결과 발생 방지
3) 연쇄복귀: 어느 하나 Rollback 시
다른 트랜잭션도 함께 ROLLBACK 되는 현상 방지
3. 잠금(Lock)
- 하나의 트랜잭션에 사용되는 데이터를 다른 트랜잭션이 접근하지 못하도록 하는 것
※ Locking 기법
- 트랜잭션들이 어떤 로킹 단위를 액세스 하기 전에 Lock을 요청해서 Lock이 허락 되어야만 그 로킹 단위를 액세스할 수 있도록 하는 기법
19. 고급 데이터베이스
1. 데이터 웨어하우스(Data
Warehouse)
- 급증하는 데이터를 효과적으로 분석하여 정보화하고, 이를 여러 계층 사용자들이 효율적으로
사용할 수 있도록 한 DB à 의사결정용 DB
2. 데이터마트(Data Mart)
- 전사적으로 구축된 data warehouse에서 특정 주제나 부서 중심으로 구축된 소규모
단일 주제의 data warehouse
3. 데이터 마이닝(Data
Mining)
- Data Warehouse에서 저장된 데이터 집합에서 사용자의 요구에 따라 유용하고 가능성 있는 정보를 발견하기 위한 기법
à 군집화: 상호간 유사한 특성을 갖는 데이터를 집단화하는 방법
4. OLAP(Online Analytical Processing)
- 다차원으로 이루어진 데이터에서 통계적인 요약정보를 분석하여 의사결정에 활용하는 방식(중간
매게체 없음)
1) OLAP 연산
- Roll-up: 분석할 항목에 대한 한 차원의 계층 구조를 따라 단계적으로 구체적인 내용의 상세 데이터로부터 요약된 형태의 데이터로
접근하는 기능
- Drill-down: 요약된 형태의 데이터 수준에서 보다 구체적인 내용의 상세 데이터로 단계적으로 접근
- Drill-through: 데이터웨어하우스나 OLTP에 존재하는 상세 데이터에 접근하는
기능
- Drill-access: 다른 데이터 큐브의 데이터에 접근하는 기능
- Pivoting: 고정된 형태의 정형화된 보고서가 아니라 사용자가 원하는 형태의 다양한 보고서를 역동적으로 볼 수 있음. 사용자는 다차원의 질의를 통해 원하는 항목들을 자유롭게 선택할 수 있음
- Slicing: 차원 별로 데이터 큐브를 수직/수평으로 얇게 잘라 분석
- Dicing: Slicing을 더 자르는데 그 모양이 주사위 모양
2) 종류
- ROLAP, MOLAP, HOLAP
5. OLTP(Online Transaction Processing)
- 여러 이용자가 실시간으로 데이터베이스에서 데이터를 처리하는 방식
※ 데이터 큐브
- 특정 목적의 OLAP에서 사용하기 위한 큐브 형태의 다차원 논리적 구조
- 하나의 데이터 웨어하우스에서 있는 데이터로부터 여러 개의 데이터 큐브를 생성 할 수 있음
- 데이터 큐브 저장 방식에는 관계형과다차원형이 있음
6. 객체 지향 데이터베이스
- 객체 지향 데이터 모델의 개념을 반영하여 실세계에 존재하는 객체를 표현하고 관리하는 데이터베이스 기술
à 객체 지향형 데이터베이스 관리 그룹(ODMG) 2.0
1) 객체(Object): 실세계
환경에서 존재하는 개체를 추상적으로 표현한 것
2) 속성(Attribute): 객체를 기술하는데 사용되며, 유일한 이름과 데이터 타입을 가짐
3) 메소드(Method): 객체에 수행될 연산, 즉
객체의 속성 값에 대한 변경이나 검색으로 기술한 것(메시지 필요)
4) 클래스(Class): 공통적인 특성을 소유한 객체들을 그룹화 및 추상화한 것
5) 인스턴스(Instance): 클래스를 이용하여 생성한 하나의 객체
6) 상속(Inheritance): 클래스 계층 구조를 형성하는 서브 클래스와 슈퍼 클래스간에
존재하는 계승의 개념
7. 분산 데이터베이스(Distributed
Database)
- 논리적으로 같은 시스템에 속하지만 물리적으로는 컴퓨터 네트워크를 통해 분산되어 있는 데이터베이스
1) 위치 투명성(Location Transparency): 데이터베이스의 실제 위치를
알 필요 없이 데이터베이스의 논리적인 명칭만으로 접근 할 수 있음
2) 중복 투명성(Replication Transparency): 동일한 데이터가 여러
곳에 중복되어 있더라도 사용자는 하나의 데이터만 존재하는 것처럼 사용할 수 있고, 시스템은 자동으로
여러 데이터에 대한 작업을 수행
3) 병행 투명성(Concurrency Transparency): 분산 데이터베이스와 관련된
다수의 트랜잭션들이 동시에 실행되더라도 그 트랜잭션들의 수행 결과는 서로 영향을 받지 않음
4) 장애 투명성(Failure Transparency): 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 트랜잭션은 정확하게 수행
알고리즘
1. 객체지향기법
- 정의: 현실 세계의
개체를 하나의 객체로 만들어 소프트웨어 개발 시 객체들을 조립해서 작성할 수 있도록 하는 기법
- 구성요소: 객체(Object), 클래스(Class), 메시지(Message)
1. 객체
- 데이터를 처리하는 함수를 캡슐화한 소프트웨어 모듈
1) 데이터: 객체가 가지고 있는 정보
2) 함수(메소드): 객체가 가지고 있는 데이터를
처리하는 알고리즘
2. 클래스
- 공통된 속성과 연산을 갖는 객체의 집합
3. 메시지
- 객체에게 어떤 행위를 하도록 지시하는 명령 또는 요구사항
2. 객체지향기법 기본원칙
1. 캡슐화(Capsulation)
- 데이터를 처리하는 함수를 하나로 묶는 것을 의미 (정보은닉, 재사용 가능)
2. 정보은닉(Information
Hiding)
- 다른 객체에게 자신의 정보를 숨기고 자신의 연산을 통하여 접근을 허용하는 것
3. 추상화(Abstraction)
- 객체의 속성 중 불필요한 부분을 생략하고, 가장 중요한 부분만 모델화 하는 것
4. 상속성(Inheritance)
- 이미 정의된 상위 클래스의 속성과 연상을 하위 클래스가 물려 받는 것
5. 다형성(Polymorphism)
- 메시지에 의해 객체가 연산을 수행할 때, 하나의 메시지에 의해 각 객체가 가지고 있는 고유의 방법으로 응답할 수 있는 능력
3. 객체지향기법 생명주기
- 단계: 계획/분석à설계à구현à테스트/검증
1. 객체지향 분석(Object
Oriented Analysis)
- 사용자의 요구사항을 분석하여 요구된 문제와 관련된 모든 클래스, 속성, 연산 관계 등을 정의하여 모델링하는 작업
2. 객체지향 설계(Object
Oriented Design)
- OOA를 통해 생성한 분석 모델을 설계 모델로 변환 하는 작업
- 단계: 문제 정의 à 요구 명세화 à 객체연산자 정의 à 객체인터페이스 결정 à 객체 구현
3. 객체지향 구현
- OOD에서 생성된 설계 모듈과 명세서를 근거로 코딩하는 단계
4. 객체지향 테스트
1) 클래스 테스트: 단위테스트. 캡슐화된 클래스나
객체 검사
2) 통합 테스트: 객체를 몇 개 결합하여 하나의 시스템으로 완성시키는 과정에서의 검사
3) 확인 테스트: 사용자 요구사항에 대한 만족 여부를 검사
4) 시스템 테스트: 모든 요소들이 적합하게 통합되고 올바를 기능을 수행하는지 검사
4. 아키텍처 스타일
- 정의: 보편적인 설계 방법의 양식
1. IEEE 1471
- 소프트웨어 집약적인 시스템에서 아키텍처가 표현해야 하는 내용과 관계를 규정하는 국제 표준
- 특징: 표준화, 중립성, 유연성, 의사소통
2. 저장소 구조
- 중앙자료구조와 독립된 컴포넌트로 구성 되었으며, 컴포넌트간 통신은 이루어지지 않음
3. MVC 구조
- 유저인터페이스와 비즈니스로직들을 서로 분리하여 개발하는 방법으로, 세 개의 컴포넌트(M/V/C)로 구분
1) Model: 애플리케이션의 핵심 기능 포함
2) View: 정보 표시를 관리하고 결과물 생성을 위해 모델로부터 정보를 수신
3) Controller: 사용자로부터 입력을 받아 모델과 뷰에 명령을 전달
4. 클라이언트/서버 구조
- Client와 Server를 나뉘는 아키텍처. 하나의
서버에 다수의 클라이언트가 접속되는 일대다 관계 구성
5. 계층 구조
- 계층적으로 조직화가 가능한 애플리케이션에 적합한 아키텍처
6. 파이프필터 구조
- 데이터의 흐름을 점진적으로 처리하는 시스템을 위한 아키텍처
- 프로세싱을 위한 시스템이 각 필터에 캡슐화 되어 있으며, 데이터는 인접필터 사이의 파이프를
통해 전달
5. 순서도와 C언어의 기본
1. 변수명 작성 규칙
- 영문, 숫자, _ 로 사용
- 글자수 제한 없음
- 공백 및 예약어 사용 불가
- 대소문자 구분
- 첫글자는 영문 또는 _
- 문장 끝 세미콜론(;) 반드시 위치
2. 자료형 변수
1) 문자형 변수: Char(1Byte)
2) 정수형 변수: Int(4Byte), Short(2Byte
3) 실수형 변수: float[단정도 | 1bit(부호부) + 지수부(8bit) + 가수부(23bit)],
double(배정도 | 1bit(부호부) + 지수부(11bit)
+ 가수부(52bit)]
3. 표준 입출력
1) scanf(서식문자열, 변수주소);
- 서식문자열: %d(10진수), %o(8진수), %x(16진수), %c(문자),
%s(문자열), %f(실수), %e(지수형 실수)
- 변수주소: int A일 경우 à&A
/ A[i]일 경우 à A
2) printf(“서식문자열”, 변수);
- 서식문자열: \n(다음 줄), \t(tab만큼
간격), \r(현재 줄 처음)
4. 연산자
1) 산술연산자: ++, --
*, /, % +, -
- ++a(전치연산자): a값 증가 후 a값을
연산에 사용
- a++(후치연산자): a값 연사에 사용 후 a값
증가
2) 관계연산자: <, <=, >, >= ==, !=
3) 비트연산자: ~(not)
<<, >>&(and)
^(xor) |(or)
- 양수일 경우 shift(<<, >>) 패딩비트: 0
- 음수일 경우 shift(<<) 패딩비트:
0, shift(>>) 패딩비트: 1
4) 논리연산자: !(not)
&&(and) ||(or) à true or false
5) 조건연산자: 조건? 수식1: 수식2; à조건이 참일 경우 수식1, 거짓일 경우 수식2 실행 또는 저장
6) 기타연산자: sizeof(자료형 크기 출력)
* 정수형 변수의 값 정의 시 숫자 앞에 0이 있으면 8진수, 0x가 있으면 16진수
6. C언어의 제어문
1. 조건문
1) if(조건) {실행문1;} else {실행문2;}
2) if(조건) {실행문1;} else if {실행문2;} else {실행문3;}
3) switch(식 또는 값) {case 1: 실행문1;
break; case 2: 실행문2; break; ... default: 실행문0; break;}
2. 반복문
1) for(식1; 식2; 식3) à 식1: 초기값, 식2: 최종값, 식3: 증가값
2) while(조건) {실행문;}
3) do {실행문;} while(조건);
7. C언어의 포인터와 배열
1. 포인터 변수
- 주소 값을 저장하는 변수
- int A=100; à A변수에 100을 저장, 이
때 100이 저장된 곳의 주소를 FF라 할 때
- int *B; à 포인터 변수 B 정의
- B=&A; à 포인터 변수 B에 A의
주소 값 FF를 저장
- *B àB가 가지고 있는 주소 FF가 가리키는 곳의 값을 의미
2. 배열
- 동일한 데이터 유형을 여러 개 사용하는 경우 이를 손쉽게 처리하기 위해 여러 개 변수들을 조합해서 하나의 변수명으로 정의할 때
사용
- 배열의 이름은 주소로 사용 가능 à 배열 이름 앞에는 &를 사용하지 않음
3. 내장함수
1) math.h
- sqrt(x) : 루트x
- pow(a,b): a^b(a의 b제곱)
- abs(x): |x|(절대값 x)
2) string.h
- strlen(x): x문자열의 길이
- strcpy(a,b): a문자열을 b에 복사
- strcmp(a,b): a=bà0, a>bà1, a<bà-1
업무 프로세스
1.정보 전략 계획 수립(ISP: Information Strategy Planning)
1. 정의: 전사적 관점에서 정보시스템이나 정보관리 등의 전략을 수립하는 활동
※ CSF(Critical
Success Factor)
- MIT 경영 대학원에서 개발한 전략 정보 시스템 실현을 위한 기법의 하나. 성공에 불가결한
요인 찾아내어 경영상 중요한 정보를 결정하는 방법
2. 기법
1) 3C분석: 표적 시장 선정을 위해 3C를
분석하여 자사의 성공에 필요한 전략을 수립하는 기법
à Customer(고객), Competitor(경쟁사), Company(자사)
2) SWOT분석: 기업
내/외부 환경을 분석하여 강점은 부각, 약점은 보완, 기회는 활용, 위협은 억제하는 마케팅 전략을 수립하는 기법
à Strength(강점), Weakness(약점), Opportunity(기회), Threat(위협)
3) 5-Force분석: 외부의 5가지 요인을 분석하여 기업의 경쟁환경을 분석하기 위한 도구
à 구매자 교섭력, 공급자 교섭력, 신규
진입자의 위협, 대체품의 위협, 기존 업계 경쟁
4) 7S분석: 조직 내부의
역량, 체계 등을 분석하는 기법으로 전략 경영 체제에 적합한 내부 역량 판단 방법론
à Hard 3S: Strategy(전략), Structure(구조), System(시스템) /
Soft 4S: Staff(사람), Shared Value(공유된 가치), Style(스타일), Skill(기술/역량)
à상위 3S: 전략, 공유된 가치, 기술/역량
하위 4S: 시스템, 사람, 스타일, 구조
5) 6시그마(Sigma): 모토로라에서
창안된 방법론으로 생산 현장의 무결함을 위해 시작된 불량률 축소 운동. GE의 잭웰치에 의해 6시그마 적용 범위 확대 되어 경영 전반에 걸쳐 경영 혁신 기법으로 발전
à (기존) DMAIC: Define(정의), Measure(측정), Analyze(분석), Improve(향상), Control(관리)
à (신규) DMADV: Define(정의), Measure(측정), Analyze(분석), Design(디자인), Verify(검증)
6) 벤치마킹(Benchmarking):
특정분야에서 우수한 상대를 모델로 하여 자기 기업과의 차이를 비교.분석하고, 단점을 극복하기 위해, 상대의 장점을 배우면서 자기 혁신을 하는
경영 기법
à 프로젝트 계획 → 자료수집 → 분석 → 개선
2.업무 프로세스 재설계(BPR: Business Process Reengineering)
1. 정의: 경쟁에서 우위를 확보하기 위해 프로세스를 기반으로 비즈니스 시스템을 근본적으로 재설계하여 혁신적인 성과를 추구하는 것
2. BPR 실행 4단계
1) 현행 업무 프로세스(As-is) 모형 분석 à 프로세스
분할도(수직), 프로세스 종속도(수평)
2) 개선 사항 분석
3) 향후 업무 프로세스(To-be) 모형 수립
4) 이행 계획(Transition Plan)
3. BPM(업무 프로세스 관리:
Business Process Management)
- 기업 내/외의 업무 프로세스를 가시화하고, 프로세스를
실행 통제하며, 전체 업무 프로세스를 효율적으로 관리하고 최적화 할 수 있는 변화 관리 시스템의 구현
기법
- 프로세스 정의 → 프로세스 실행 → 프로세스
측정 → 프로세스 분석/개선 → 프로세스 통제와 모니터링/예측
à
프로세스 측정 시 KPI(핵심성과지표: Key
Performance Indicator) 활용
4. RTE(실시간 기업: Real-time Enterprise)
- 지속적인 프로세스 개선과 실시간 정보 제공을 통해 업무 지연을 최소화하고 의사결정 스피드를 높여 경쟁력을 강화하는 기법
5. PI(업무 혁신: Process
Innovation)
- 기존의 업무 처리 방식을 정형화하고, 최적의 프로세스를 재구축하여 업무 효율성을 높이려는
비즈니스 프로젝트
à
3요소: 프로세스, 정보기술, 조직
3. 전사적 자원 관리(ERP: Enterprise Resource Planning)
1. 정의: 기업의 모든
자원을 체계적으로 관리하여 최적화된 기업 활동을 가능하게 하는 것
- MRP(자재) → MRP II(제조) → ERP → X-ERP → ERP II
※ MRP(자재 소요 계획: Material Requirements Planning)
- 원자재~최종 완제품까지 자재 흐름을 관리하는 기법
2. SEM(전략적 기업 경여:
Strategic Enterprise Management)
- 경영자/관리자들이 기업의 수익 창출을 위한 합리적인 의사결정을 할 수 있도록 정보를
제공해주는 전략적 의사결정 지원 시스템
à VBM, ABM/ABC, BSC(재무적 관점, 고객 관점, 내부 비즈니스 프로세스 관점, 학습과 성장 관점)
4. 정보 시스템 구축
1. IRM(정보자원관리:
Information Resource Management)
- 기업의 정보 자원을 조직 전체가 공유할 수 있도록 자원 관리 원칙에 따라 관리하는 정보관리 접근 방법
à 3요소: 정보, 정보기술, 정보시스템
2. ERM(전사적 위험 관리:
Enterprise Risk Management)
- 기업이 직면하고 있는 주요 리스크들을 식별하고 관리하기 위한 리스크 관리 방식
3. SCM(공급망 관리:
Supply Chain Management)
- 제품 또는 부품의 최초 생산자부터 최종 소비자에 이르는 공급망을 효율적으로 관리해 불필요한 요소를 줄이려는 관리 기법
1) SCP(공급망 계획: Supply Chain Planning): 제품 수요를 예측하고, 그에 대한 조달 및 생산 계획을 수립하는 시스템
2) SCE(공급망 실행: Supply Chain Execution): 제품이 올바르게
전달될 수 있도록 제품의 흐름을 관리하는 기법
※ 가치 사슬(Value Chain)
4. PLM(제품 수명주기 관리:
Product Lifecycle Management)
- 제품의 원가를 낮추고 부가가치를 높일 수 있도록 제품의 수명주기를 관리하는 것
5. CRM(고객 관계 관리:
Customer Relationship Management)
- 고객관리 비용을 최소화 하면서 지속적인 기업의 가치 창출을 위해 고객의 요구나 의견을 분석하여 고객의 성향과 욕구를 충족시키는
마케팅을 실시하는 경영 기법
6. SRM(공급업체 관계 관리:
Supplier Relationship Management)
- 제품을 공급하는 공급 업체와의 관계를 관리하고 평가하여 기업의 수익성을 높일 수 있도록 해주는 경영 기법
7. MDM(기준 정보 관리:
Master Data Management)
- 기업 내/외부의 마스터 데이터를 단일화하여 활용도를 높이고 오류를 줄이기 위한 모든
활동의 집합
1) PIM(제품 정보 관리: Product Information Management)
2) CDI(고객 데이터 통합: Customer Data Integration)
8. VRM(밴더 관계 정리:
Vendor Relationship Management)
- 개인이 기업에게 제공할 개인 정보, 선호도, 패턴
등을 관리하는 기술
à 개인용 데이터 저장소, 개인용 데이터 분석, 제안 요청서, 권한 관리와 역메시징
5. 시스템 통합
1. EAI(전사적 응용 통합:
Enterprise Application Integration)
- 기업 내 운영되는 여러 종류의 플랫폼 및 애플리케이션을 통합하고 유기적으로 처리할 수 있는 기반 기술을 통칭
- 구성요소: 어댑터, 플랫폼, 브로커, 업무흐름
2. EIP(기업 정보 포탈:
Enterprise Information Portal)
- EAI 통해 기업 내/외부의 정보를 모두 통합해 하나의 웹 화면으로 제공하는 통합정보시스템(e-Portal)
3. EKP(기업 지식 포탈:
Enterprise Knowledge Portal)
- 기업 내/외부의 정보를 통합하고, 업무 프로세스와
연결하여 단일 창구를 통해 제공하는 지식 정보 포털 시스템
à 기업에서 사용하는 모든 프로그램을 단일 웹 화면에서 사용하도록 제공
4. KMS(지식 관리 시스템:
Knowledge Management System)
- 인적자원이 축적하고 있는 개별적인 지식을 체계화하여 공유함으로써 경쟁력을 향상 시키기 위한 기업 정보 시스템
à KMS → EP → EKP → EKP 2.0
5. EA(전사적 아키텍처:
Enterprise Architecture)
- 기업 목표와 요구사항을 효과적으로 지원하기 위해 IT 인프라 각 부분의 구성과 구현
기술을 체계적으로 기술하는 작업
à
비즈니스 아키텍처, 데이터 아키텍처, 애플리케이션
아키텍처, 기술 아키텍처
6. BI(비즈니스 인텔리전스:
Business Intelligence)
- 기업 내부 축적된 대량의 정보를 기업의 경영 활동 전반에 활용될 수 있도록 정리/분석하여
제공하는 애플리케이션과 기술을 총칭
à
Data Warehouse – Data Mart => Data Mining(OLAP, OLTP)
7. BRMS(비즈니스 규칙 관리 시스템:
Business Rule Management Systme)
- 비구조적인 업무 프로세스를 자동으로 정의/제어 함으로써 비전문가도 효과적으로 업무 처리할
수 있도록 지원하는 시스템
8. DSS(의사결정 시스템: Decision Support Systme)
- 일부는 계량화 할 수 있으나, 일부는 주관적으로 처리할 수 밖에 없는 문제에 관해 효과적인 의사결을 할 수 있도록 지원하는 시스템
9. SIS(전략 정보 시스템: Strategic Information System)
- 기업 경쟁 우위를 확보하기 위하여 구축 이용하는 시스템
6. IT 아웃소싱
1. BPO(업무 프로세싱아웃소싱:
Business Processing Outsourcing)
- 핵심 업무를 제외한 모든 업무를 외부 전문 업체에 위탁하여 자사의 핵심업무에 모든 역량을 집중하는 경영 기법
à ITOP(정보 기술 아웃소싱: Information Technology Outsourcing)도 BPO의 일부분
2. SLA(서비스 수준 계약:
Service Level Agreement)
- 일정한 서비스 수준을 보장하기 위해 IT서비스 사업자와 사용자간 맺는 계약
3. SLM(서비스 수준 관리:
Service Level Management)
- SLA에서 정의한 서비스에 대해 성과와 문제점을 정확히 측정 평가하고 개선해 나가는 과정
4. ITSM(IT서비스 관리:
IT Service Management)
- 서비스 사용자에게 제공되는 IT서비스를 서비스 제공자가 수행하는 프로세스 및 지원 절차
à 요소: 프로세스, 인력, 조직, 기술
5. ITIL(정보기술 인프라 라이브러리: IT Infrastructure Library)
- 영국에서 태동한 정보기술 서비스를 지원, 구축, 관리하는
프레임워크로 IT서비스의 운영/관리를 돕기위한 문서들의 집합
6. ISO/IEO 20000
- ITSM에 필요한 사항들을 구체적으로 명시한 최초 국제 표준
7. 전자 상거래
1. 정의: (전자거래 기본법) 재화, 용역 거래에 있어 전부 혹은 일부가 전자문서 교환 등 전자적 방식에 의해처리되는 거래
2. 유형
- B2C, B2B, B2G, C2C, B2E, e-Marketplace(카달로그형, 경매형, 역경매형, 교환형)
※ CLAS(광속상거래: Commerce At Light Speed)
※ ESCROW 서비스(조건부 양도 증)
정보 보안/암호화
1.정보 보안/암호화
1. 보안 정의
- 컴퓨터 시스템 또는 저장된 정보들을 권한이 없는 외부의 불법적인 침입이나 변경, 파괴로부터
보호하는 것
2. 보안 요건
1) 기밀성: 시스템 내의 정보와 자원을 인가된 사용자에게만 접근을 허용 하는 것
2) 무결성: 시스템 내의 정보는 인가된 사용자만 수정 가능하게 하는 것
3) 가용성: 인가된 사용자는 언제라도 시스템 사용 가능함
4) 인증: 정보를 보내는 사람의 신원을 확인하는 것
5) 부인방지: 데이터 송/수신을 부인할 수
없도록 송/수신 증거를 제공
6) 접근통제: 불법적인 접근을 방지하는 과정. 크래커의
침입으로부터 보호함
3. 보안 위협 유형
1) 가로막기: 데이터의 정상적인 전달을 가로막아 흐름을 방해(가용성 저해)
2) 가로채기: 송신에서 수신까지 가는 도중 몰래 보거나 도청하여 정보를 유출(기밀성 저해)
3) 수정: 전송된 데이터를 다른 내용으로 바꾸는 행위(무결성
저해)
4) 위조: 다른 송신자로부터 데이터가 송신된 것처럼 꾸미는 행위(무결성 저해)
4. 인증(Authentification)
- 시스템이 단말 작동 개시 정보를 확인하는 보안 절차
5. 암호화
1) 개인키 암호화 기법(Private Key Encryption)
- 동일한 키로 데이터를 암호화(Encryption)하고 복호화(Decryption)하는 기법
à 대칭적 암호화 기법, 단일키 암호화 기법 è DES
2) 공개키 암호화 기법(Public Key Encryption)
- 암호화 시 사용하는 공개키는 공개하고, 복호화 시 사용하는 비밀키는 관리자가 관리하는
기법
à 비대칭적 암호화 기법 è RSA
※ PKI(Public Key
Infrastructure)
- 공개키 암호화 시스템을 안전하게 사용할 수 있도록, 필요한 서비스를 지원해주는 기반
구조로, 사용자들이 안전하게 데이터를 교환할 수 있게 해줌
'정보처리기사' 카테고리의 다른 글
정보처리기사 필기 오답노트 (0) | 2018.04.19 |
---|---|
[정보처리기사 필기] 3과목 운영체제 (0) | 2018.04.17 |
[정보처리기사 필기] 2과목 전자계산기구조 (0) | 2018.04.14 |
[정보처리기사 필기] 1과목 데이터베이스 (0) | 2018.04.09 |