본문 바로가기
카테고리 없음

정보처리기사 실기 요점정리 (데이터베이스, 업무프로세스)

by 사용자 집탱구리 2019. 4. 14.

데이터베이스

* 데이터베이스의 개념

  - 업무처리를 위해 다수의 응용시스템사용자들이 공용으로 사용하기 위한 데이터의 집합


* 데이터베이스의 정의

  - 통합 데이터 : 중복을 최소화한 데이터의 집합

  - 저장된 데이터 : 언제든 사용가능 하도록 저장된 데이터

  - 공용 데이터 : 여러 사용자가 공유 할 수 있는 데이터의 집합

  - 운영 데이터 : 중복을 최소화하여 문제가 발생하지 않도록 관리가 필요한 데이터


* 데이터베이스 특징

  - 실시간접근성 : 사용자질의에 대한 실시간 응답 및 처리

  - 계속적인 진화 : 최신의 정보유지를 위해 삽입,삭제,갱신이 지속적으로 이루어짐

  - 동시공유 : 여러 사용자가 동시에 접근하여 이용가능

  - 내용에의한 참조 : 데이터참조시 튜플이나 주소가 아닌 사용자가 요구하는 내용으로 검색 

  - 데이터 중복의 최소화 : 동일 데이터의 중복성을 최소화


* 데이터베이스의 구성요소

  - 개체 : 현실세계에 존재하는 유형 혹은 무형의 정보의 대상

  - 속성 : 개체의 특성이나 상태를 기술한것

  - 관계 : 개체간의 연관성을 의미


* 시스템 카탈로그

 - 데이터베이스에 저장되어 있는 개체들에 대한 정보와 관계를 저장

 - 데이터사전 (저장된 데이터 = 메타데이터)

 - 검색은 가능하나 삽입,삭제,갱신은 안됨

 - 시스템 테이블로 구성. 사용자가 SQL실행시 자동갱신.


* DBMS

 - 데이터의 중복과 종속성을 최소화하고 데이터베이스를 공유 할 수 있도록 관리 및 운영을 해주는 소프트웨어 시스템


* DBMS 장단점

 - 장점 : 데이터의 중복성 / 종속성 최소화 / 일관성과 무결성 유지 / 보안유지 / 사용자간의 데이터 공유 / 표준화 구현

 - 단점 : 돈이 많이듦 / 자료처리 복잡함 / 백업과 회복이 어려움 / 한군데에서 장애 발생시 전체에 영향을 줌


* DBMS 언어

 - DDL : 데이터베이스의 구조 정의,수정,삭제를 위한 언어

 - DML : 데이터베이스의 자료 검색,삽입,수정,삭제를 위한 언어

 - DCL : 데이터의 무결성유지, 병행수행 제어, 보호와 관리를 위한 언어


* 뷰테이블

 - 하나 이상의 테이블로 유도되어 만들어진 가상테이블

 - 물리적 공간을 차지 하지 않음

 - 데이터 접근제어로 보안성 향상


* SQL 정의어 (DDL)

 1. CREATE

   ① 테이블 정의 - CREATE TABLE 테이블명;

   ② 스키마 정의 - CREATE SCHEMA 스키마이름 AUTHORIZATION 사용자;

   ③ 도메인 정의 - CREATE DOMAIN 도메인이름 데이터타입

                         DEFAULT 기본값

                         CONSTRAINT 제약조건이름

                         CHECK (VALUE IN (범위값));

   ④ 인덱스 정의 - CREATE UNIQUE INDEX 인덱스명 ON 테이블명 (속성 [ASC | DESC]);


 2. ALTER

   ① ALTER TABLE 테이블명 ADD 속성명 데이터타입;

   ② ALTER TABLE 테이블명 ALTER 속성명 [SET DEFAULT];

   ③ ALTER TABLE 테이블명 DROP 속성명 [CASCADE | RESTRICT];


 3. DROP

   ① 테이블 삭제 - DROP TABLE 테이블명 [CASECADE | RESTRICT];

   ② 인덱스 삭제 - DROP INDEX 인덱스명;

   ③ 뷰 삭제 -  DROP VIEW 뷰 [CASECADE | RESTRICT];

   ④ 제약조건 삭제 - DROP CONSTRAINT 제약조건;


* SQL 조작어 (DML)
SELECT

   ① 단순질의

   SELECT 속성 FROM 테이블 WHERE 조건

   AND 속성 BETWEEN 'A' AND 'B' ← A와 B사이 범위 검색시

   GROUP BY 속성 [HAVING 조건]

   ORDER BY 속성 [ASC | DESC];


   ② 중복제거

   SELECT DISTINCT 속성 FROM 테이블 WHERE 조건;


   ③ 집계

   SELECT SUM(속성) ~ : 합계

   SELECT AVG(속성) ~ : 평균

   SELECT MAX(속성) ~ : 최댓값

   SELECT MIN(속성) ~ : 최솟값

   SELECT COUNT(속성) ~ : 갯수


INSERT

   INSERT INTO 테이블(속성1,속성2,속성3…) VALUES(1,2,3…);


UPDATE

   UPDATE 테이블 SET 속성 = 변경값 WHERE 조건;


DELETE

   DELETE FROM 테이블 WHERE 조건;


* SQL 제어어 (DCL)

COMMIT : 연산이 성공적으로 종료 되었을 때 연산에 의해 수정된 내용을 지속적으로 유지하기 위한 명령어

ex)  UPDATE 테이블 SET 속성 = 변경값 WHERE 조건; COMMIT;


ROLLBACK : 연산이 실행되기 이전으로 되돌리기 위해 연산을 취소하는 명령어

ex)  DELETE FROM 테이블 WHERE 조건; ROLLBACK;

GRANT : 권한부여

ex) GRANT UPDATE ON 인사 TO 'AAA' WITH GRANT OPTION;

                  권한내용       테이블      사용자            권한부여


REVOKE : 권한취소

ex) REVOKE UPDATE ON 학생 FROM 'AAA' CASCADE;

                 권한내용        테이블            사용자  연쇄적 취소


* SQL 예시

 - 테이블 생성 : 테이블명은 '인사'이고 사원번호, 성명, 주소, 부서번호의 속성을 가지며

                     사원번호는 숫자형, 성명, 주소, 부서번호는 문자형이다. 주소는 유일하다.

                     사원번호는 기본키이며 부서번호는 NULL값을 가질 수 없다.

                     부서번호는 외래키이고 부서테이블의 부서번호를 참조한다.

 CREATE TABLE 인사

  ( 사원번호 INT,

    성명 CHAR,

    주소 CHAR,

    부서번호 CHAR NOT NULL,

    UNIQUE (주소),

    PRIMARY KEY (사원번호),

    FOREIGN KEY (부서번호) REFERENCE 부서(부서번호)

    ON UPDATE CASCADE );


- '인사'테이블에 자료형이 숫자형인 '나이' 속성 추가

ALTER TABLE 인사 ADD 나이 INT;


- '인사'테이블 삭제. 관련테이블 연쇄적으로 삭제

DROP TABLE 인사 CASCADE;


- 뷰 테이블 생성 : 테이블 '사원'에서 직위가 '대리'인 사원의 사원번호,사원명,연락처를 가지고

                        속성이 사번,이름,연락처인 뷰테이블을 생성한다. 뷰테이블의 이름은 '대리사원명단'이다.

                        직위는 변경할 수 없다.

CREATE VIEW 대리사원명단(사번,이름,연락처) AS SELECT 사원번호,사원명,연락처 FROM 사원

WHERE 직위 = '대리' WITH CHECK OPTION;


* 스키마 : 데이터베이스의 구조와 제약조건에 대한 명세를 기술 및 정의

 - 내부스키마 : 물리적 저장장치 관점에서 바라본 데이터베이스 물리적 구조

 - 외부스키마 : 사용자가 사용하는 한 부분에서 본 데이터베이스 논리적 구조

 - 개념스키마 : 논리적 관점에서 본 전체적인 데이터 구조


* 데이터베이스 설계

 요구사항분석 → 설계 ( 개 → 논 → 물 ) → 구현 → 운영 및 유지보수


* 릴레이션의 특징

 - 릴레이션의 튜플은 모두 상이하며 유일하고 순서는 상관 없다.

 - 릴레이션의 속성값 간의 순서는 의미 없다.

 - 속성값은 원자값으로 구성되며 분해 불가능.


* 키의 종류

 1) 후보키 : 각 튜플을 유일하게 식별 할 수 있는 속성( 유일성과 최소성을 만족)

 2) 기본키 : 후보키 중 특별하게 선택된 키 ( NULL값을 가질 수 없으며 유일성과 최소성을 만족한다. 중복될 수 없다.)

 3) 대체키 : 기본키를 제외한 속성

 4) 외래키 : 다른 테이블을 참조 하기 위한 속성( NULL 값을 가질 수 없다.)

 5) 슈퍼키 : 튜플 식별이 가능한 후보키와 다른 속성의 조합 (유일성은 만족 하지만 최소성은 만족하지 않는다.)


* 무결성 제약조건

 1) 개체 무결성 : 개체식별에 오류가 없도록 하는 제약조건. 

기본키는 NULL이 될 수 없으며 중복되면 안된다.

 2) 참조 무결성 : 테이블 참조시 오류가 없도록 하는 제약조건.

외래키는 NULL이 될 수 없으며 참조 테이블의 기본키와 같아야한다.

 3) 도메인 무결성 : 속성값의 범위가 정의된 경우 속성값은 정해진 범위 안에서 값을 가져야한다.

  동일 속성에 대해 타입과 길이가 같아야함.


* 관계대수 : 결과를 얻기위한 연산자를 표현하는 방법

* 관계해석 : 결과를 얻기위한 과정을 표현하는 방법


*관계대수 연산자

1) 셀렉트 (б) : б조건(R)

2) 프로젝트 (π)  : π속성(R) 

3) 조인 (▷◁) : R ▷◁ S

4) 디비전 (÷)  : R ÷ S
5) 합집합 (∪)
6) 교집합 (∩)
7) 차집합(-)
8) 카디션프로덕트 (×)


*  이상현상 : 데이터의 중복과 종속으로 인해 발생되는 문제점.

 1) 삭제이상 : 원하지 않는 데이터까지 함께 삭제

 2) 삽입이상 : 자료부족으로 삽입되지 않거나 원하지 않는 데이터까지 삽입

 3) 갱신이상 : 정보가 모호해져서 정확한 정보 파악이 안되는 문제

 

* 함수적 종속 : 함수 종속 관계는 X → Y로 표현하고 X를 결정자, Y를 종속라고 한다.

 1) 완전 함수 종속 : 오직 기본키에만 종속

 2) 부분 함수 종속 : 합성키로 구성된 경우 일부 속성에 종속

 3) 이행적 함수 종속 : AB 이고 BC 이면 AC


*정규화

 제 1 정규화 : 도메인은 원자값으로만 구성

 제 2 정규화 : 부분 함수 종속제거

 제 3 정규화 : 이행적 함수 종속 제거

 BCNF         : 모든 결정자가 후보키가 되도록

 제 4 정규화 : 다치종속 제거

 제 5 정규화 : 후보키를 통하지 않은 조인 종속 제거


* 데이터베이스 장애 유형

 1) 트랜잭션 장애 : 트랜잭션 수행도중 발생한 오류로 인해 발생

 2) 시스템 장애 : 시스템상의 오류로 인해 트랜잭션 수행 불가능

 3) 미디어 장애 : 하드디스크의 손상으로 인한 장애


* 트랜잭션 : 데이터베이스 내에서 한번에 수행되어야 할 연산들의 집합

- 원자성 : 트랜잭션 내의 모든 연산은 반드시 수행되어야 하며 그렇지 않으면 모두 수행되지 않아야함

- 독립성 : 하나의 트랜잭션이 수행중일 때 다른 트랜잭션이 끼어들 수 없음.

- 일관성 : 트랜잭션 정상 완료 후 언제나 일관성 있는 상태여야하며 모순이 있어서는 안된다.


* 회복 : 손상된 데이터를 손상 이전으로 되돌리는 작업

- 즉시 갱신 기법 : 트랜잭션 실행 중 변경내용 바로적용

- 지연 갱신 기법 : 트랜잭션이 완료될 때 까지 지연 후 적용

- 검사 시점 기법 : 실행중간에 검사 시점 지정. 검사 시점까지 완료된 내용을 적용.

- 그림자 페이징 기법 : 로그사용하지 않고 페이지로 나눈뒤 각페이지를 복사 후 그림자 페이지 보관.
                              장애 발생마다 그림자 페이지로 회복 


* 병행제어 : 병행실행시 트랜잭션간의 독립성을 유지하며 트랜잭션에 문제가 생기지 않도록 제어하는것

* 병행제어를 하지 않았을 대 문제점

1) 갱신 분실 : 수행과정에서 연산결과 일부가 없어지는 현상

2) 모순성 : 수행결과가 일관성이 없이 서로 다른 현상

3) 연쇄복귀 : 두개의 트랜잭션 일부가 취소되어 연쇄적으로 다른 트랜잭션도 취소됨.

4) 비완료 의존성 : 하나의 트랜잭션이 취소후 회복되기 전에 다른 트랜잭션의 실패 갱신결과를 참조.


* 객체지향 데이터베이스

- 객체 : 현실세계에 존재하는 개체를 추상화 한것

- 속성 : 객체의 특성이나 상태를 나타냄

- 메소드 : 객체가 실행해야하는 구체적인 연산

- 메시지 : 객체에 지시하는 명령어


* 객체지향 기법

- 클래스 : 유사한 성격이나 공통적인 특성을 갖는 객체들의 모임

- 캡슐화 : 정보를 하나로 묶어 정보은닉이 이루어지도록 하는것

- 상속 : 상위클래스의 특징을 하위클래스가 재사용 할 수 있는것

- 다형성 : 동일한 객체여도 경우에따라 다르게 연산


* 정보보안 3원칙

1) 기밀성 : 인가되지 않은 사용자는 정보를 볼 수 없다.

2) 무결성 : 인가되지 않은 사용자는 정보를 변경 할 수 없다.

3) 가용성 : 인가된 사용자가 정보에 접근할 때 방해가 없어야한다.


* 대칭키 : 암호화, 복호화 키가 동일.

* 비대칭키 : 공개키 시스템. ex) 공인인증서 : 암호화 -> 공개키, 복호화 -> 비밀키


* 튜닝 : 데이터베이스의 시스템을 최적화 하기 위해 재구성하는것.

* 트리거 : 참조 관계에 있는 두 테이블중 하나의 테이블에서 갱신이 발생 했을 때 

  무결성과 일관성을 위해 다른 테이블도 연쇄적으로 갱신이 일어나게 하는것


* 데이터웨어하우스 : 사용자의 의사결정을 위해 기간내의 데이터를 공통의 형식으로 변환하여 관리하는 데이터베이스


* 데이터마이닝 : 데이터웨어하우스에서 통계적 규칙이나 패턴을 분석하여 새로운 데이터를 얻어내기 위한 기법


* OLAP : 다수의 테이블을 이용하는데 효율적으로 분석할 수 있도록 하는 분석형 어플리케이션

1) Roll-up : 분석 할 항목에 대해 단계적으로 구체적인 내용부터 요약된 형태의 데이터로 접근하는 기능

2) Drill-up : 분석 할 항목에 대해 요약된 형태의 데이터부터 구체적인 내용으로 접근하는 기능

3) Pivoting : 보고서의 행,열,페이지 차원을 바꿔 볼 수 있는 기능

4) Slicing : 다차원의 데이터 항목들을 다각도에서 조회 및 비교

5) Dicing : slicing을 더 쪼개는 기능


* 소프트웨어설계 5원칙

1) 단일 책임의 원칙 : 모든 클래스는 단 하나의 책임을 갖는다.

2) 개방 폐쇄의 원칙 : 확장에 대해서는 개방, 수정에 대해서는 폐쇄

3) 리스코프치환 법칙 : 자식클래스는 언제나 부모클래스 교체 가능

4) 인터페이스의 원칙 : 클라이언트가 자신이 사용하지 않는 메서드에 의존하지 않는다.

5) 의존성 역전의 법칙 : 상위 클래스는 하위클래스에 의존해서는 안된다.


업무프로세스

* 정보 기술 아키텍처 (ITA)

 - 전사적구조 (EA)

 - 기술 참조 모델 (TRM)

 - 표준프로파일 (SP)


* 업무 재설계 (BPR)

* 비즈니스 프로세스 관리 (BPM)

* 전사적 자원관리 (ERP)

* 기업 애플리케이션 통합 (EAI)

* 전략적 기업경영 (SEM) - VBM, ABC/ABM, BSC

* 핵심성공요인 (CSF)

* MOT - 기업에 대한 인상을 받는 순간

* VOC - 고객의 소리

* AS-iS - 현재업무프로세스분석

* TO-be - 미래 구현할 업무프로세스 정의 분석 ( 목록 -> 체계도 -> 정의서)


* 5FORCE

1) 기존 기업들 간의 경쟁 : 유리한 위치 차지를 위한 여러 전략

2) 잠재적 진입자들의 위협 : 유망 산업으로의 새로운 기업 진출

3) 대체 상품의 위협 : 차별화된 기능,서비스 필요

4) 구매자들의 교섭력 : 가격인하, 품질개선, 서비스증대, 기업간의 과도한 경쟁

5) 공급자들의 교섭력 : 가격인상, 판매거절, 서비스 질하락 위협


* 매킨지의 7S모델

1) 전략 (Stratege)

2) 기술 (Skill)

3) 공유가치 (Shared Value)

4) 구조 (Structure)

5) 시스템 (System)

6) 종업원 (Staff)

7) 스타일 (Style)


* SWOT :  기업의 내부환경을 분석하여 강점과 약점을 발견하고 외부환경을 분석하여 기회와 위협을 찾아내어 마케팅 전략을 수립하는 것

댓글0