데이터베이스
* 데이터베이스의 개념
- 업무처리를 위해 다수의 응용시스템사용자들이 공용으로 사용하기 위한 데이터의 집합
* 데이터베이스의 정의
- 통합 데이터 : 중복을 최소화한 데이터의 집합
- 저장된 데이터 : 언제든 사용가능 하도록 저장된 데이터
- 공용 데이터 : 여러 사용자가 공유 할 수 있는 데이터의 집합
- 운영 데이터 : 중복을 최소화하여 문제가 발생하지 않도록 관리가 필요한 데이터
* 데이터베이스 특징
- 실시간접근성 : 사용자질의에 대한 실시간 응답 및 처리
- 계속적인 진화 : 최신의 정보유지를 위해 삽입,삭제,갱신이 지속적으로 이루어짐
- 동시공유 : 여러 사용자가 동시에 접근하여 이용가능
- 내용에의한 참조 : 데이터참조시 튜플이나 주소가 아닌 사용자가 요구하는 내용으로 검색
- 데이터 중복의 최소화 : 동일 데이터의 중복성을 최소화
* 데이터베이스의 구성요소
- 개체 : 현실세계에 존재하는 유형 혹은 무형의 정보의 대상
- 속성 : 개체의 특성이나 상태를 기술한것
- 관계 : 개체간의 연관성을 의미
* 시스템 카탈로그
- 데이터베이스에 저장되어 있는 개체들에 대한 정보와 관계를 저장
- 데이터사전 (저장된 데이터 = 메타데이터)
- 검색은 가능하나 삽입,삭제,갱신은 안됨
- 시스템 테이블로 구성. 사용자가 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) 이행적 함수 종속 : A→B 이고 B→C 이면 A→C
*정규화
제 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 : 기업의 내부환경을 분석하여 강점과 약점을 발견하고 외부환경을 분석하여 기회와 위협을 찾아내어 마케팅 전략을 수립하는 것
댓글