[자료]정보처리기사(실기) 데이터베이스 단어
효율화를 위해 프린트해서 사용하세요.
데이터베이스 정의
데이터베이스는 특정 조직의 응용시스템들이 공유하여 사용할 목적으로 통합, 저장, 관리, 운영되는 데이터의 집합이다.
데이터베이스 특징
① 계속적인 변화(Continuous Evolution)
② 동시 공유(Concurrent Sharing)
③ 실시간 접근성(Real-Time Accessibility)
④ 내용에 의한 참조(Contents Reference)
⑤ 데이터 중복의 최소화(Redundancy Minimize)
DBMS 정의
파일 시스템의 문제점인 데이터의 중복성과 종속성등의 문제를 최소화 하기위해 등장
사용자의 요구에 따라 정보를 생성해주고 데이터베이스를 관리해 주는 소프트웨어
속성/튜플
속성 = 디그리(Degree) = 차수 = 열(Column) = 칸
튜플 = 카디널리티(Cardinality) = 행(Row) = 줄
데이터베이스 설계 단계
요구조건분석 -> 개념적설계 -> 논리적설계 -> 물리적설계 -> 구현 -> 운영 및 개선(유지
보수)
데이터 아키텍처(DA)
기업의 데이터 측면에서 기업 시스템을 처음부터 끝까지 시스템의 본질인 데이터를 구조적,
체계적으로 관리하고 설계하는 모든 과정
E-R관계 모델
개념적 설계 단계에서 사용되는 설계 기법, 데이터베이스의 전반적인 구조를 이해하기 쉽도
록 표현한 모델
릴레이션
자료 저장의 형태가 2차원 구조의 테이블(표)로 표현
릴레이션의 특징
-릴레이션의 튜플들은 모두 상이
-릴레이션의 튜플들은 유일하며 순서에는 의미가 없음
-릴레이션의 속성들 간의 순서는 의미가 없음
-릴레이션의 속성값은 원자값으로 구성되며 분해가 불가능
Mapping Rule
개념적 데이터베이스 모델링 결과를 관계형 데이터베이스 이론에 근거하여 데이터베이스 구조로 변환하는 과정
키(KEY)
관계 데이터베이스에서 튜플을 식별하기 위해 사용하는 속성이나 속성의 집합
키(KEY 종류 )
① 후보키(Candidate Key) : 릴레이션에서 각 튜플을 유일하게 식별할 수 있는 속성이나 속
성의 집합. 유일성, 최소성 만족
② 기본키(Primary Key) : 후보키 중에서 튜플을 식별하기 위해 특별히 선택 된 키
기본키는 중복될수 없으며, NULL값이 올 수 없음
유일성, 최소성 만족
③ 대체키(Alternate Key) : 후보키 중에서 기본키를 제외한 속성
④ 외래키(Foreign Key) : 하나의 테이블에서 원하는 자료를 얻지 못하는 경우 다른 테이블
을 참조(이용)하기 위해 사용되는 속성(=외래식별자)
⑤ 슈퍼키(Super Key) : 한 릴레이션(테이블) 내의 튜플들을 식별할 수 있는 후보키와 다른
속성들과의 모든 조합
유일성만족, 최소성은 만족하지 못함
무결성(Integrity) 제약조건
제약조건 : 정확성과 안정을 유지하기위한 제약조건
① 개체 무결성 : 기본키는 NULL값이 올 수 없으며, 중복될 수 없음
② 참조 무결성 : 외래키는 NULL값이 올 수 있으며, 참조 릴레이션(테이블)의 기본키와 같
아야 함
③ 도메인 무결성 : 릴레이션(테이블)에서 속성값의 범위가 정의된 경우 그 속성값은 정해진
범위 이내의 값으로 구성해야 하는 제약조건
④ 고유(UNIQUE) 무결성: 특정 속성에 대해 고유한 값을 가지도록 조건이 주어진 경우, 구
속성값은 모두 달라야함
⑤ NULL 무결성 : 특정 속성값에 NULL이 올 수 없다는 조건이 주어진 경우, 그 속성값은
NULL값이 올 수 없다는 제약조건
⑥ KEY 무결성 : 한 릴레이션(테이블)에는 최소한 하나의 키가 존재해야 한다는 제약조건
관계 대수(Relational Algebra)
관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술한 절차적 언어
① SELECT(σ)
수평적 부분집합(튜플)을 구하기 위한 연산
σ<선택조건>(테이블이름)
+EX) AND(∧), OR(∨), NOT σ성별 = "남" ∧ 직위 = "부교수" (교수)
② PROJECT(Π)
수직적 부분집합(속성의 값)을 구하는 연산
Π<추출 속성 리스트>(테이블 이름)
③ JOIN(▷◁)
두 테이블로부터 조건에 맞는 관련된 튜플들을 하나의 튜플로 결합하여 하나의 테이블로
만드는 연산
테이블1▷◁<조인조건>테이블2
④ DIVISION(÷)
‘A DIVISION B’는 B테이블의 조건을 만족하는 튜플들을 테이블A에서 추출하는 연산
연산에 사용된 속성은 결과에서 제외
테이블1(테이블1속성÷테이블2속성)테이블2
+) Union(합집합, ∪... R∪S), 교집합(Intersection,∩....R∩S)
Difference(차집합, -), Cartesian Product(교차곱, 기호 : X)
관계 해석(Relational Calculus)
원하는 정보가 무엇이라는 것만 정의하는 비절차적 언어. 튜플관계해석과 도메인관계해석이 존재
이상(Anomaly)
데이터베이스의 논리적 설계 시 하나의 릴레이션에 많은 속성들이 존재하여, 데이터의 중복
과 종속으로 인해 발생되는 문제점
① 삭제 이상 : 삭제는 튜플 단위로 이루어짐, 하나의 자료를 삭제하고자할 때 그 자료가
포함된 튜플이 삭제됨으로 인해 원하지 않은 자료까지 함께 삭제
② 삽입 이상 : 삽입도 튜플 단위로 이루어짐. 원하지 않은 자료가 삽입되거나 자료가 부족
해 삽입되지 않아 발생하는 문제점
③ 갱신 이상 : 자료갱신 과정 중 정확하지 않거나 일부의 튜플만 갱신됨으로 인해 정보가
모호해지거나 일관성이 없어져 정확한 정보의 파악이 안 되는 현상
함수적 종속
① 완전 함수 종속 : 릴레이션에서 한 속성이 오직 기본키에만 종속
② 부분 함수 종속 : 릴레이션에서 한 속성이 기본키가 2개 이상인 합성키로 구성된 경우 이
중 일부 속성에만 종속되는 경우
③ 이행적 함수 종속 : A를 알면 B를 알 수 있고, B를 알면 C를 알수 있을 때, A를 알면 C
를 알 수 있는 경우
정규화(Normalization)
논리적 설계 단계에서 발생할 수 있는 종속으로 인한 이상현 상의 문제점을 해결하기 위해,
속성들 간의 종속관계를 분석하여 여러 개의 릴레이션으로 분해하는 과정. 정규화된 결과를 정규형이라 한다.
① 제1정규형(1NF) : 한 릴레이션을 구성하는 모든 도메인이 원자값만으로 구성
② 제2정규형(2NF) : 제1정규형만족 + 릴레이션을 구성하는 모든 속성이 기본키에 완전 함
수 종속이 되도록 분해하는 과정
③ 제3정규형(3NF) : 제2정규형만족 + 릴레이션을 구성하는 속성들 간에 이행적 함수 종속
관계를 분해하여 비이행적 함수 종속이 되도록 하는 과정
④ 보이스-코드 정규형(BCNF) : 제3정규형만족 + 릴레이션에서 모든 결정자가 후보키가 되
도록 하는 과정
⑤ 제4정규형(4NF) : 릴레이션에서 다치종속관계가 성립되는 경우 분해하는 정규형
⑥ 제5정규형(5NF) : 릴레이션에 존재하는 조인종속이 후보키를 통해서만 성립이 되도록 하
는 정규형
도부이결다조
메분행정치인
인적적자
역정규화
정규화된 릴레이션은 실제로 자료를 검색하는 과정에서 성능저하를 가져올 수 있다.
역정규화는 정규화된 릴레이션을 물리적 데이터 모델링 과정에서 성능을 향상시키기 위해 중복을 허용하고라도 다시 통합하거나 분할하여 구조를 재조정 하는 것을 말한다.
파생속성(Delivered Attribute)
현재 릴레이션에 없는 속성이지만 작업의 효율을 위해 한 속성으로부터 계산이나 기타 가공에 의해 파생되는 속성
내장SQL(삽입SQL)
호스트 프로그램 언어를 이용해 만든 프로그램에 내장되어, 데이터베이스를 이용할 수 있도
록 하는 것
18. 내장 SQL 특징
하나의 자료(튜플)만을 얻을 수 있음
호스트 프로그램 실행시 같이 실햄됨
호스트 변수명과 데이터베이스의 속성명은 같아도 무방
호스트 변수는 구분을 위해 콜론(:)을 변수명 앞에 붙임
+) 호스트변수선언구문... 보기만하기!
EXEC SQL BEGIN DECLARE SECTION;
{ 데이터_타입 호스트_변수명;}
EXEC SQL END DECLARE SECTION;
커서(CURSOR)
여러개의 자료(튜플)를 그룹으로 처리하기 위해 사용
DECLARE->OPEN->FETCH->CLOSE
스토어드 프로시저(Stored Procedure)
자주 수행해야할 SQL처리과정을 미리 하나의 작은 프로그램으로 작성하여 데이터베이스에
저장해 두었다가 필요한 경우 호출하여 사용하기 위해 만들어 놓은 프로그램
트랜잭션
데이터베이스 내에서 한꺼번에 모두 수행되어야 할 연산들의 집합
하나의 작업 처리를 위한 논리적 작업 단위
트랜잭션의 성질
① 원자성(Atomicity) : 트랜잭션 내의 연산은 반드시 모두 수행되어야하며 그렇지 않은 경
우 모두 수행되지 않아야 함
② 일관성(Consistency) : 트랜잭션이 정상적으로 완료된 후 언제나 일관성 있는 데이터베이
스 상태가 되어야 하며, 결과에 모순이 생겨선 안됨
③ 격리성(Isolation) : 독립성, 하나의 트랜잭션이 수행 중에는 다른 트랜잭션이 접근 할 수
없고 각각의 트랜잭션은 독립적이어야 함
④ 영속성(Durability) : 지속성, 트랜잭션이 성공적으로 완료된 후 결과는 지속적으로 유지
되어야 함
23. 트랜잭션 연산
① COMMIT : 트랜잭션이 성공적으로 종료된 후 수정된 내용을 지속적으로 유지하기 위한
연산
② ROLLBACK : 트랜잭션이 비정상적으로 수행되었거나 오류가 발생했을 때 수행작업을 취
소하고 이전 상태로 되돌리기 위한 연산
트랜잭션 스케줄
동시에 여러 개의 트랜잭션들이 병행 실행되는 경우 트랜잭션의 연산들이 실행되는 순서
① 직렬 스케줄(Serial Schedule) : 한 트랜잭션을 구성하는 연산들을 연속적으로 모두 실행
하고 다른 트랜잭션을 수행하는 방식
② 비직렬 스케줄(Nonserial Schedule) : 각 트랜잭션의 연산들을 번갈아가면서 병행 실행
③ 직렬가능 스케줄(Serializable Schedule) : 직렬스케줄기법을 이용한 결과와 비직렬스케
줄기법을 이용한 결과가 동일하게 나오는경우
회복
여러 가지 요인으로 인해 손상된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구시키는 작업
회복 기법
① 즉시 갱신 기법
② 지연 갱신 기법
③ 검사 시점 기법
④ 그림자 페이징 기법
REDO와 UNDO
① REDO(재수행) : 데이터베이스가 비정상적으로 종료되었을 때 디스크에 저장된 로그를 분석하여 트랜잭션의 시작과 완료에 대한 기록이 있는 트랜잭션들의 작업을 재작업함
② UNDO(취소) : 데이터베이스가 비정상적으로 종료되었을 때 디스크에 저장된 로그를 분석하여 트랜잭션의 시작을 나타내는 START는 있지만 완료를 나타내는 COMMIT기록이 없는 트랜잭션들이 작업한 변경내용들을 모두 취소함
회복관리기
로그(Log), 메모리 덤프(Memory Dump) 등을 이용하여 회복 기능을 수행하는 DBMS의 핵
심 구성 요소
데이터베이스 수행시 발생되는 장애 유형
① 트랜잭션 장애 : 하나의 트랜잭션이 수행되는 과정에서 발생하는 오류
② 시스템 장애 : 트랜잭션 장애들로 인해 시스템 상의 문제가 발생하여 트랜잭션이 수행되
지 못하는 경우
③ 미디어 장애 : 하드웨어적으로 하드디스크 등이 손상되는 경우
병행 제어(Concurrency Control)
병행실행시 트랜잭션 간의 격리성을 유지하여 트랜잭션 수행에 문제가 발생되지 않도록 제어하는 것
☑ 병행 제어의 목적
① 데이터베이스의 공유 최대화
② 시스템 활용도 최대화
③ 사용자에 대한 응답시간 최소화
④ 단위 시간당 트랜잭션 처리 건수 최대화
⑤ 데이터베이스의 일관성 유지
로킹(Locking)
로킹 기법은 트랜잭션의 병행 실행시 하나의 트랜잭션이 사용하는 데이터베이스 내의 데이터를 다른 트랜잭션이 접근하지 못하게 하는 것. 로킹 단위가 크면 병행성 수준이 낮아지고, 로킹 단위가 작으면 병행성 수준이 높아진다.
교착상태(Deadlock)
한 트랜잭션이 완료되지 못해 LOCK상태가 계속 유지되는 경우 다른 트랜잭션들의 작업이
더 이상 진행되지 못하고 무한정 기다리는 상태
2단계 잠금 규약(Two-Phase Lock Protocol)
트랜잭션 스케줄의 직렬성을 보장하는 대표적인 잠금 기법
트랜잭션이 잠금만 수행할 수 있고 잠금해제는 수행할 수 없는 확장(Growing)단계와 트랜잭션이 잠금 해제만 수행할 수 있고 잠금은 수행할 수 없는 단계인 축소(Shrinking)단계로 수행하도록 함. 그러나, 교착상태를 예방 할 수는 없음
타임스탬프(Time Stamp)
각 트랜잭션이 데이터에 접근할 시간을 미리 지정하여 기억시킨뒤 그 시간(Time stamp)의
순서에 따라 순서대로 데이터에 접근하여 수행하는 방법
교착상태가 발생하지 않음. 병행제어를 하지 않았을 때의 문제점
① 갱신분실(Lost Update)
② 모순성(Inconsistency)
③ 연쇄 복귀(Cascading Rollback)
④ 비완료 의존성(Uncommittes Dependency)
인덱스
수많은 데이터 중에서 원하는 자료를 빠르고 효율적으로 검색하기 위해서 사용하는 방법
인덱스 구조
① B-트리(Balanced Tree) : 검색의 효율을 높이기 위해 자료의 구조를 균형있는 트리 구조
로 나타내는 방법
② B+-트리 : B트리의 변형으로, 단말 노드를 찾기위한 인덱스를 제공하는 인덱스 세트와
단말 노드로만 구성되어있는 순차세트로 구성
단말 노드만으로 순차검색이 가능
③ 클러스터드 인덱스(Clustered Index)
테이블에서 하나의 속성을 기준으로 정렬시킨 후, 테이블을 재구성하여 인덱스를 만드는
방법. 테이블의 물리적 순서(실제 순서)와 인덱스 순서가 동일. 하나의 테이블에는 하나의 인덱스만 만들 수 있음
④ 넌 클러스터드 인덱스(Non Clustered Index)
테이블을 재구성하지 않고, 데이터 주소를 이용하여 인덱스를 만들어 주소값을 이용하여
검색하는 방법. 하나의 테이블에 여러 개의 인덱스를 만들 수 있음. 인덱스 구조보다 다소 복잡해 질 수 있음(검색 효율 떨어짐)
분산 데이터베이스(Distributed Database)
논리적으로는 같은 시스템에 속하지만, 물리적으로는 컴퓨터 네트워크를 통해 분산되어 있는 데이터베이스
분산 데이터베이스 시스템의 구성요소
분산처리기, 분산데이터베이스, 통신 네트워크
분산 데이터베이스 목표
① 위치 투명성
② 중복 투명성
③ 병행 투명성
④ 장애 투명성
분산 데이터베이스 장,단점
장점 : 시스템 성능이 향상, 신뢰성, 가용성이 높음, 분산제어 가능, 데이터 공유성 향상
단점 : 데이터베이스설계 어려움, 처리비용 증가, 소프트웨어개발비용증가, 잠재적 오류 증가
데이터 웨어하우스
한 조직이나 사용자의 의사결정에 도움을 주기 위하여 기간 내의 저장된 대량의 데이터를 공통의 형식으로 변환하여 관리하는 데이터베이스
데이터 마트
데이터웨어하우스의 축소판으로, 데이터의 한 부분에서 사용자가 관심을 갖는 데이터들을 담은 비교적 작은 규모의 데이터 웨어하우스
데이터 마이닝
데이터 웨어하우스와 같은 대량의 데이터에서 실제로 존재하지 않는 정보를 얻어내기 위해
각 데이터의 상관관계를 통계적분석, 인공지능 기법 등을 통해 통계적 규칙이나 패턴을 찾아내는 것
OLAP(Online Analytical Processing)
사용자가 직접 데이터베이스 검색과 분석을 통해 문제점이나 해결책을 찾도록 해주는 분석형 애플리케이션 개념
☑OLAP 종류
① MOLAP : 다차원 데이터를 저장하기 위해 특수한 구조의 다차원 데이터베이스를 사용
② ROLAP : 관계형 데이터베이스와 관계형 질의어를 사용하여 다차원데이터를 저장하고
분석
③ HOLAP : ROLAP + ROLAP
☑OLAP 연산
① Roll-up : 구체적인 내용의 상세 데이터로부터 요약된 형태의 데이터로 접근하는 기능
② Drill-down : 요약된 형태의 데이터로부터 구체적인 내용의 상세 데이터로 접근하는기능
③ Drill-through : 데이터웨어하우스나 OLTP에 존재하는 상세 데이터에 접근하는 기능
④ Drill-across : 다른 데이터 큐브의 데이터에 접근 하는 기능
⑤ Pivoting : 보고서의 행, 열, 페이지 차원을 바꾸어 볼 수 있는 기능
⑥ Slicing : 다차원 데이터 항목들을 다양한 각도에서 조회하고 자유롭게 비교하는 기능
⑦ Dicing : Slicing을 더 세분화하는 기능
스타 스키마(Star Schema)
OLAP와 같은 다차원 분석을 지원하기 위한 데이터 모델링 방법
OLTP(On-Line Transaction Processing)
온라인 업무 처리 형태의 하나로, 네트워크 상의 여러 이용자가 실시간으로 데이터베이스의
데이터를 갱신하거나 검색하는 등의 단위 작업을 처리하는 방식
ODBC(Open DataBase Connectivity)
프로그램과 데이터베이스의 종류에 관계없이 자유롭게 데이터베이스에 접근하여 사용할 수
있도록 Microsoft사가 만든 응용프로그램의 표준 인터페이스(API)
객체(Object)
유형이나 무형으로 현실 세계에 존재하는 개체를 추상화 한 것
속성(Attribute)
객체의 특성이나 상태, 관계데이터베이스의 속성과 유사
메시지(Message)와 메소드(Method)
메시지 : 객체에 어떤 처리를 하도록 지시하는 명령
메소드 : 메시지에 따라 객체가 실행해야 할 검색,삽입,삭제,변경 등과 같은 구체적인 연산
클래스(Class)
유사한 성격과 공통적인 특성을 갖는 객체들의 모임
한클래스 내의 객체들은 유사한 구조를 가짐
캡슐화(Encapsulation)
객체의 상세한 내부내용(데이터와 연산)을 객체 외부에 숨기고 필요한 사항만을 인터페이스
를 통해 보여주고 메시지를 통하여 다른 객체와 상호작용하도록함
= 정보은닉(Information Hiding)
추상화(Abstraction) : 객체가 어떤 기능을 수행할 것인지를 생각하여 중요하다고 판단하
는 속성이나 연산만을 추출해내고 복잡한 내부는 감추는 작업
일반화(Generalization) : 같은 속성을 가지고 있는 유사한 클래스들을 분류하여 새로운
클래스를 정의하는 작업
상속(Inheritance) : 상위클래스의 속성와 연산을 하위 클래스에 물려주는 것
다형성(Polymorphism) : 여러 클래스들이 공통으로 가지고있는 동일한 이름의 연산이 각
클래스에 따라 다르게 동작하는 것. 즉, 동일한 이름의 연산을 다른 목적으로 사용할 수 있게 함
오버라이딩(Overriding), 오버로딩(Overloading)
①오버라이딩 : 상위클래스의 연산을 하위클래스에서 재정의
②오버로딩 : 상위클래스의 연산과 다른 매개변수 개수와 형태를 추가하여 연산을 다중 정의
동적 바인딩(Dynamic Binding) : 실행 시간에 하위 클래스의 객체타입에 따라서 하위 클
래스의 적합한 동작이 자동으로 정해지는 것
오버라이딩의 다형성 지원
소프트 웨어 디자인 패턴(Software Desing Pattern) : 소프트웨어를 설계할 때 특정 상
황에서 자주 사용하는 패턴 또는 반복되는 솔류션을 일정한 양식으로 형식화 한 것
효과 : 소프트웨어 재사용 가능성 증가, 소프트웨어 설계와 품질 향상
리팩토링(Refactoring)
소프트웨어의 수행결과를 그대로 유지하면서도 소프트웨어를 구성하는 내부코드의 구조를 재. 조정하는 행위
장점 : 소프트웨어 가독성증가, 유지보수와 디버깅 한결 쉬워짐, 소프트웨어의 생산성과 품질 향상
소프트 웨어 생명 주기
개발 타당성 검토 -> 개발 계획 수립 -> 요구사항 분석 -> 소프트웨어 설계 -> 소프트웨어
구현 -> 테스트 -> 운용 -> 유지보수
소프트웨어 관리
① 요구관리 : 소프트웨어 개발이 이루어지기도 전에 고객의 요구가 불시에 바뀜으로 인하여 개발이 지연되거나 낭비되는 것을 예방하기 위하여 고객의 요구를 정확하게
추출하고 이를 문서화하며 고객과 개발자가 상호 동의하는 과정에 대한 관리
② 형상관리 : 소프트웨어를 개발하는 전체과정에서나 유지보수 과정 중에서 발생하는 각종
산출물들을 중심으로 시간 흐름에 따라 시스템 형상을 만들어 가면서 소프트
웨어 버전을 체계적으로 관리
③ 유지관리 : 소프트웨어가 개발되어 고객이 사용하는 과정 중에서 변경 사항이 발생할 경
우 이를 수용하여 소프트웨어를 수정함으로써 고객이 소프트웨어를 지속적으
로 잘 사용하도록 하는 소프트웨어 관리
④ 품질관리 : 개발된 소프트웨어가 원래의 개발목적에 부합하며 요구를 만족하는지 검증
객체지향설계 5대 원칙(SOLID) - 로버트 마틴
① Single responsibility(단일 책임 원칙)
② Open closed principle(개방 폐쇄 원칙)
③ Liskov substitution(리스코프 교환 원칙)
④ Interface segregation(인터페이스 분리 원칙)
⑤ Dependency inversion(의존관계 역전 원칙)
소프트웨어 아키텍처(Software Architecture)
어플리케이션 개발모델, 개발하려는 소프트웨어의 전체 골격에 대한 논리적 구조
① MVC구조 : 전체 어플리케이션을 Model, View, Control로 구분하여 사용자 인터페이스
와 비즈니스 로직을 상호 분리하여 개발하는 구조
② C/S구조 : 서비스를 요구하는 ‘클라이언트’와 서비스를 제공하는 ‘서버’로 구성
③ 다층(n-tier)구조 : 클라이언트/서버 구조의 단점을 극복하기 위하여, 클라이언트에 해당
하는 최상위 계층과 서버에 해당하는 최하위 계층 사이에 비즈니스
로직을 전담하는 중간계층을 둠으로써 비즈니스 로직을 완전히 분리
④ 저장소(Repository) 구조 : 소프트웨어 아키텍처가 다수의 서브 시스템들로 구성되어 있
을 때, 특정한 서브 시스템에 공유 저장소를 두고 나머지 서
브 시스템들이 이곳을 통해 데이터를 공유하며 효율적으로 관
리하고 서비스를 제공하는 구조
수동형 데이터 집중화구조임 <-> 능동형 데이터 집중화 구조(블랙보드구조)
알고리즘의 효율성
① 공간 효율성 : 알고리즘을 실행하는 동안 알고리즘이 필요로하는 메모리공간의 효율성
② 시간 효율성 : 알고리즘을 실행하여 종료하기까지 걸리는 시간의 효율성
☑ Big O 표기법
효율성 높음 효율성 낮음
O(c) O(log n) O(n) O(n・logn) O( ) O( ) O( ) O( )
소프트웨어 품질관리
기능성(Functionality), 사용성(Usability), 신뢰성(Reliability), 유지보수성(Maintainability),
이식성(Portability), 효율성(Efficiency)
트리거(Trigger)
참조관계에 있는 두 테이블에서 하나의 테이블에 삽입, 삭제, 갱신 등의 연산으로 테이블의
내용이 바뀌었을 때 데이터의 일관성과 무결성을 유지하기 위해 이와 연관된 테이블도 연쇄적으로 변경이 이루어질 수 있도록 하는 것
튜닝(Tuning)
데이터베이스의 성능향상과 사용자의 요구에 따라 빠른 검색을 통한 신속한 서비스 제공, 저장 공간 효율을 향상시키는 등 데이터베이스 시스템을 최적화하기 위해 재조정(조율)하는 것
정보 보안 목표
① 기밀성(Confidentiality) : 허락되지 않은 사용자나 대상이 정보의 내용을 알 수 없도록
하는 것
② 무결성(Integrity) : 허락되지 않은 사용자나 대상이 정보를 함부로 수정,삭제 등의 변경을
할 수 없도록 하는 것
③ 가용성(Availability) : 허락된 사용자나 대상이 정보에 접근하고자 할 때, 방해받지 않도
록 하는 것
행 이주(Row Migration)
새로운 데이터를 입력하거나 기존 데이터의 변경 작성 시, 데이터를 저장한 데이터 블록에
기존에 입력된 자료들에 의해 저장공간이 없을 때 블록을 옮겨 저장하는 형상
데이터 타입이 VARCHAR(가변길이 문자형)인 경우 발생
검색속도가 느려짐
행 연결(Row Chaining)
비어 있는 블록에 데이터를 삽입하고자 할 때 빈 공간의 기억공간이 적어 새로 입력하려는
데이터의 일부만 저장하고 일부는 다른 블록에 저장하여 두 블록을 연결하는 방법
시스템 카탈로그(System Catalog) =데이터 사전(Data Dictionary)
데이터 베이스에 저장되어있는 테이블, 인덱스, 뷰, 제약조건, 사용자 등 개체들에 대한 정보
와 정보들 간의 관계를 저장한 것으로 그 자체가 하나의 작은 데이터베이스이다. 특징은 다음과 같다.
①시스템 카탈로그에 저장된 데이터를 메타데이터라고 한다.
②일반사용자도 시스템 카탈로그의 내용을 검색할 수 있지만, 시스템 카탈로그의 내용을 삽
입, 삭제, 갱신 등은 불가능하다.
③시스템 카탈로그 갱신은 사용자가 SQL 문을 실행하면 시스템에 의해 자동적으로 이루어진
다.
④시스템 카탈로그는 일반 테이블과 같이 시스템 테이블로 구성된다.
뷰(VIEW)
하나 이상의 테이블로부터 유도되어 만들어진 가상 테이블
실제 물리적으로 기억공간을 차지하지 않으며, 논리적 독립성을 제공
데이터 접근제어로 보안성을 향상. 특징은 다음과 같다.
① 뷰가 정의된 기본 테이블이 제거되면, 뷰도 자동적으로 제거
② 뷰에 대한 검색(SELECT)은 일반 테이블과 거의 동일
③ 뷰에 대한 삽입, 삭제,갱신은 제약이 따름
④ 보안 측면에서 뷰를 활용할 수 있음
⑤ 뷰는 ALTER 문을 이용하여 변경할 수 없음
⑥ 한번 정의된 뷰는 변경할 수 없으며, 삭제한 후 다시 생성해야함
무결성(Integrity)
데이터베이스의 자료가 오류 없이 정확성과 안정성을 유지하기 위한 제약조건이나 성질. 또는 데이터베이스에 저장된 데이터값과 그것이 표현하는 현실 세계의 실제값이 일치하는 정확성
무결성 제약조건
데이터베이ㅡ에 저장된 데이터의 정확성을 보장하기 위해 정확하지 않은 데이터가 데이터
베이스 내에 저장되는 것을 방지하기 위한 제약조건
DBMS 필수 기능
① 정의 기능 : 저장될 데이터의 형태, 구조 등 데이터베이스의 저장에 관한 여러 가지 사항
을 정의(생성)하는 기능
② 조작 기능 : 데이터베이스의 자료를 사용자가 이용할 수 잇도록 요구에 따라 검색, 갱신,
삽입, 삭제 등을 지원하는 기능
③ 제어 기능 : 데이터의 정확성과 안전성을 유지를 위한 관리 기능으로 데이터의 무결성 유
지, 보안, 병행 수행 제어 등을 제공
데이터베이스 언어
① 정의어(DDL) : 관계 데이터베이스에서 사용될 테이블, 스키마, 도메인, 인덱스, 뷰 등을
정의(생성)하거나 수정,제거하기 위해 사용되는 언어
② 조작어(DML) : 데이터베이스 내의 자료를 실제 사용자가 이용하기 위한 언어
③ 제어어(DCL) : 관리자가 데이터의 보안, 무결성 유지, 병행제어, 회복 등을 하기위해 사용
하는 언어
스키마 정의
데이터베이스의 전체적인 구조와 제약조건에 대한 명세를 기술, 정의
스키마 종류
① 내부 스키마 : 물리적 저장 장치 관점(기계 관점)에서 본 데이터베이스의 물리적 구조
② 개념 스키마 : 논리적 관점(사용자 관점)에서 본 전체적인 데이터 구조
③ 외부 스키마 : 전체 데이터 중 사용자가 사용하는 한 부분에서 본 논리적 구조
‘서브스키마’라고도 함
SQL(Structured Query Language)
관계 데이터베이스에서 사용되는 대표적인 언어로, 관계 대수와 관계 해석을 기초로 데이터
베이스의 작업을 보다 효율적이고, 다양하게 표현하고 처리하기 위한 고급 데이터베이스 언
어이다. 대회식이며, 기타 다른 언어로 작성된 프로그램에 삽입되어 처리할 수 있다.
보안 기술의 목표
① 정보 보호(Information Security)
② 정보 인증(Information Authentication)
③ 사용자 인증(User Authentication)
소프트웨어 테스트 기법
① 화이트 박스 테스트 기법 : 소스코드 기반 테스트, 단위 모듈 내의 결함을 발견하는 <단
위 테스트>에서 주로 사용 ex) 구조적기법, 루프테스트
② 블랙박스 테스트 기법 : 요구명세서 기반 테스트, 실제 환경과 유사한 환경 아래 전체
<시스템 테스트>에서 주로 사용 ex) 동등분할기법, 경계값 분
석 기법, 경험기반 오류 예측 기법, 원인과 결과 그래프 기법
소프트웨어 3R
① 재공학(Re-Engineering) : 기존 소프트웨어의 데이터와 기능들을 변경 or 개선하는 작업
② 역공학(Reverse Engineering) : 현재 운영중인 소프트웨어의 소스코드, 목적코드를 분석
하여 소프트웨어 구성요소와 설계도를 추정하여 만들어내는 작업
③ 재사용(Reuse) : 소프트웨어 개발 지식을 표준화함으로써 이미 개발한 소프트웨어를 나중에 반복하여 다시 사용할 수 있도록 함
데이터베이스 정의
데이터베이스는 특정 조직의 응용시스템들이 공유하여 사용할 목적으로 통합, 저장, 관리, 운영되는 데이터의 집합이다.
데이터베이스 특징
① 계속적인 변화(Continuous Evolution)
② 동시 공유(Concurrent Sharing)
③ 실시간 접근성(Real-Time Accessibility)
④ 내용에 의한 참조(Contents Reference)
⑤ 데이터 중복의 최소화(Redundancy Minimize)
DBMS 정의
파일 시스템의 문제점인 데이터의 중복성과 종속성등의 문제를 최소화 하기위해 등장
사용자의 요구에 따라 정보를 생성해주고 데이터베이스를 관리해 주는 소프트웨어
속성/튜플
속성 = 디그리(Degree) = 차수 = 열(Column) = 칸
튜플 = 카디널리티(Cardinality) = 행(Row) = 줄
요구조건분석 -> 개념적설계 -> 논리적설계 -> 물리적설계 -> 구현 -> 운영 및 개선(유지
보수)
데이터 아키텍처(DA)
기업의 데이터 측면에서 기업 시스템을 처음부터 끝까지 시스템의 본질인 데이터를 구조적,
체계적으로 관리하고 설계하는 모든 과정
E-R관계 모델
개념적 설계 단계에서 사용되는 설계 기법, 데이터베이스의 전반적인 구조를 이해하기 쉽도
록 표현한 모델
릴레이션
자료 저장의 형태가 2차원 구조의 테이블(표)로 표현
릴레이션의 특징
-릴레이션의 튜플들은 모두 상이
-릴레이션의 튜플들은 유일하며 순서에는 의미가 없음
-릴레이션의 속성들 간의 순서는 의미가 없음
-릴레이션의 속성값은 원자값으로 구성되며 분해가 불가능
Mapping Rule
개념적 데이터베이스 모델링 결과를 관계형 데이터베이스 이론에 근거하여 데이터베이스 구조로 변환하는 과정
키(KEY)
관계 데이터베이스에서 튜플을 식별하기 위해 사용하는 속성이나 속성의 집합
키(KEY 종류 )
① 후보키(Candidate Key) : 릴레이션에서 각 튜플을 유일하게 식별할 수 있는 속성이나 속
성의 집합. 유일성, 최소성 만족
② 기본키(Primary Key) : 후보키 중에서 튜플을 식별하기 위해 특별히 선택 된 키
기본키는 중복될수 없으며, NULL값이 올 수 없음
유일성, 최소성 만족
③ 대체키(Alternate Key) : 후보키 중에서 기본키를 제외한 속성
④ 외래키(Foreign Key) : 하나의 테이블에서 원하는 자료를 얻지 못하는 경우 다른 테이블
을 참조(이용)하기 위해 사용되는 속성(=외래식별자)
⑤ 슈퍼키(Super Key) : 한 릴레이션(테이블) 내의 튜플들을 식별할 수 있는 후보키와 다른
속성들과의 모든 조합
유일성만족, 최소성은 만족하지 못함
무결성(Integrity) 제약조건
제약조건 : 정확성과 안정을 유지하기위한 제약조건
① 개체 무결성 : 기본키는 NULL값이 올 수 없으며, 중복될 수 없음
② 참조 무결성 : 외래키는 NULL값이 올 수 있으며, 참조 릴레이션(테이블)의 기본키와 같
아야 함
③ 도메인 무결성 : 릴레이션(테이블)에서 속성값의 범위가 정의된 경우 그 속성값은 정해진
범위 이내의 값으로 구성해야 하는 제약조건
④ 고유(UNIQUE) 무결성: 특정 속성에 대해 고유한 값을 가지도록 조건이 주어진 경우, 구
속성값은 모두 달라야함
⑤ NULL 무결성 : 특정 속성값에 NULL이 올 수 없다는 조건이 주어진 경우, 그 속성값은
NULL값이 올 수 없다는 제약조건
⑥ KEY 무결성 : 한 릴레이션(테이블)에는 최소한 하나의 키가 존재해야 한다는 제약조건
관계 대수(Relational Algebra)
관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술한 절차적 언어
① SELECT(σ)
수평적 부분집합(튜플)을 구하기 위한 연산
σ<선택조건>(테이블이름)
+EX) AND(∧), OR(∨), NOT σ성별 = "남" ∧ 직위 = "부교수" (교수)
② PROJECT(Π)
수직적 부분집합(속성의 값)을 구하는 연산
Π<추출 속성 리스트>(테이블 이름)
③ JOIN(▷◁)
두 테이블로부터 조건에 맞는 관련된 튜플들을 하나의 튜플로 결합하여 하나의 테이블로
만드는 연산
테이블1▷◁<조인조건>테이블2
④ DIVISION(÷)
‘A DIVISION B’는 B테이블의 조건을 만족하는 튜플들을 테이블A에서 추출하는 연산
연산에 사용된 속성은 결과에서 제외
테이블1(테이블1속성÷테이블2속성)테이블2
+) Union(합집합, ∪... R∪S), 교집합(Intersection,∩....R∩S)
Difference(차집합, -), Cartesian Product(교차곱, 기호 : X)
관계 해석(Relational Calculus)
원하는 정보가 무엇이라는 것만 정의하는 비절차적 언어. 튜플관계해석과 도메인관계해석이 존재
이상(Anomaly)
데이터베이스의 논리적 설계 시 하나의 릴레이션에 많은 속성들이 존재하여, 데이터의 중복
과 종속으로 인해 발생되는 문제점
① 삭제 이상 : 삭제는 튜플 단위로 이루어짐, 하나의 자료를 삭제하고자할 때 그 자료가
포함된 튜플이 삭제됨으로 인해 원하지 않은 자료까지 함께 삭제
② 삽입 이상 : 삽입도 튜플 단위로 이루어짐. 원하지 않은 자료가 삽입되거나 자료가 부족
해 삽입되지 않아 발생하는 문제점
③ 갱신 이상 : 자료갱신 과정 중 정확하지 않거나 일부의 튜플만 갱신됨으로 인해 정보가
모호해지거나 일관성이 없어져 정확한 정보의 파악이 안 되는 현상
함수적 종속
① 완전 함수 종속 : 릴레이션에서 한 속성이 오직 기본키에만 종속
② 부분 함수 종속 : 릴레이션에서 한 속성이 기본키가 2개 이상인 합성키로 구성된 경우 이
중 일부 속성에만 종속되는 경우
③ 이행적 함수 종속 : A를 알면 B를 알 수 있고, B를 알면 C를 알수 있을 때, A를 알면 C
를 알 수 있는 경우
정규화(Normalization)
논리적 설계 단계에서 발생할 수 있는 종속으로 인한 이상현 상의 문제점을 해결하기 위해,
속성들 간의 종속관계를 분석하여 여러 개의 릴레이션으로 분해하는 과정. 정규화된 결과를 정규형이라 한다.
① 제1정규형(1NF) : 한 릴레이션을 구성하는 모든 도메인이 원자값만으로 구성
② 제2정규형(2NF) : 제1정규형만족 + 릴레이션을 구성하는 모든 속성이 기본키에 완전 함
수 종속이 되도록 분해하는 과정
③ 제3정규형(3NF) : 제2정규형만족 + 릴레이션을 구성하는 속성들 간에 이행적 함수 종속
관계를 분해하여 비이행적 함수 종속이 되도록 하는 과정
④ 보이스-코드 정규형(BCNF) : 제3정규형만족 + 릴레이션에서 모든 결정자가 후보키가 되
도록 하는 과정
⑤ 제4정규형(4NF) : 릴레이션에서 다치종속관계가 성립되는 경우 분해하는 정규형
⑥ 제5정규형(5NF) : 릴레이션에 존재하는 조인종속이 후보키를 통해서만 성립이 되도록 하
는 정규형
도부이결다조
메분행정치인
인적적자
역정규화
정규화된 릴레이션은 실제로 자료를 검색하는 과정에서 성능저하를 가져올 수 있다.
역정규화는 정규화된 릴레이션을 물리적 데이터 모델링 과정에서 성능을 향상시키기 위해 중복을 허용하고라도 다시 통합하거나 분할하여 구조를 재조정 하는 것을 말한다.
파생속성(Delivered Attribute)
현재 릴레이션에 없는 속성이지만 작업의 효율을 위해 한 속성으로부터 계산이나 기타 가공에 의해 파생되는 속성
내장SQL(삽입SQL)
호스트 프로그램 언어를 이용해 만든 프로그램에 내장되어, 데이터베이스를 이용할 수 있도
록 하는 것
18. 내장 SQL 특징
하나의 자료(튜플)만을 얻을 수 있음
호스트 프로그램 실행시 같이 실햄됨
호스트 변수명과 데이터베이스의 속성명은 같아도 무방
호스트 변수는 구분을 위해 콜론(:)을 변수명 앞에 붙임
+) 호스트변수선언구문... 보기만하기!
EXEC SQL BEGIN DECLARE SECTION;
{ 데이터_타입 호스트_변수명;}
EXEC SQL END DECLARE SECTION;
커서(CURSOR)
여러개의 자료(튜플)를 그룹으로 처리하기 위해 사용
DECLARE->OPEN->FETCH->CLOSE
스토어드 프로시저(Stored Procedure)
자주 수행해야할 SQL처리과정을 미리 하나의 작은 프로그램으로 작성하여 데이터베이스에
저장해 두었다가 필요한 경우 호출하여 사용하기 위해 만들어 놓은 프로그램
트랜잭션
데이터베이스 내에서 한꺼번에 모두 수행되어야 할 연산들의 집합
하나의 작업 처리를 위한 논리적 작업 단위
트랜잭션의 성질
① 원자성(Atomicity) : 트랜잭션 내의 연산은 반드시 모두 수행되어야하며 그렇지 않은 경
우 모두 수행되지 않아야 함
② 일관성(Consistency) : 트랜잭션이 정상적으로 완료된 후 언제나 일관성 있는 데이터베이
스 상태가 되어야 하며, 결과에 모순이 생겨선 안됨
③ 격리성(Isolation) : 독립성, 하나의 트랜잭션이 수행 중에는 다른 트랜잭션이 접근 할 수
없고 각각의 트랜잭션은 독립적이어야 함
④ 영속성(Durability) : 지속성, 트랜잭션이 성공적으로 완료된 후 결과는 지속적으로 유지
되어야 함
23. 트랜잭션 연산
① COMMIT : 트랜잭션이 성공적으로 종료된 후 수정된 내용을 지속적으로 유지하기 위한
연산
② ROLLBACK : 트랜잭션이 비정상적으로 수행되었거나 오류가 발생했을 때 수행작업을 취
소하고 이전 상태로 되돌리기 위한 연산
트랜잭션 스케줄
동시에 여러 개의 트랜잭션들이 병행 실행되는 경우 트랜잭션의 연산들이 실행되는 순서
① 직렬 스케줄(Serial Schedule) : 한 트랜잭션을 구성하는 연산들을 연속적으로 모두 실행
하고 다른 트랜잭션을 수행하는 방식
② 비직렬 스케줄(Nonserial Schedule) : 각 트랜잭션의 연산들을 번갈아가면서 병행 실행
③ 직렬가능 스케줄(Serializable Schedule) : 직렬스케줄기법을 이용한 결과와 비직렬스케
줄기법을 이용한 결과가 동일하게 나오는경우
회복
여러 가지 요인으로 인해 손상된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구시키는 작업
회복 기법
① 즉시 갱신 기법
② 지연 갱신 기법
③ 검사 시점 기법
④ 그림자 페이징 기법
REDO와 UNDO
① REDO(재수행) : 데이터베이스가 비정상적으로 종료되었을 때 디스크에 저장된 로그를 분석하여 트랜잭션의 시작과 완료에 대한 기록이 있는 트랜잭션들의 작업을 재작업함
② UNDO(취소) : 데이터베이스가 비정상적으로 종료되었을 때 디스크에 저장된 로그를 분석하여 트랜잭션의 시작을 나타내는 START는 있지만 완료를 나타내는 COMMIT기록이 없는 트랜잭션들이 작업한 변경내용들을 모두 취소함
회복관리기
로그(Log), 메모리 덤프(Memory Dump) 등을 이용하여 회복 기능을 수행하는 DBMS의 핵
심 구성 요소
데이터베이스 수행시 발생되는 장애 유형
① 트랜잭션 장애 : 하나의 트랜잭션이 수행되는 과정에서 발생하는 오류
② 시스템 장애 : 트랜잭션 장애들로 인해 시스템 상의 문제가 발생하여 트랜잭션이 수행되
지 못하는 경우
③ 미디어 장애 : 하드웨어적으로 하드디스크 등이 손상되는 경우
병행 제어(Concurrency Control)
병행실행시 트랜잭션 간의 격리성을 유지하여 트랜잭션 수행에 문제가 발생되지 않도록 제어하는 것
☑ 병행 제어의 목적
① 데이터베이스의 공유 최대화
② 시스템 활용도 최대화
③ 사용자에 대한 응답시간 최소화
④ 단위 시간당 트랜잭션 처리 건수 최대화
⑤ 데이터베이스의 일관성 유지
로킹(Locking)
로킹 기법은 트랜잭션의 병행 실행시 하나의 트랜잭션이 사용하는 데이터베이스 내의 데이터를 다른 트랜잭션이 접근하지 못하게 하는 것. 로킹 단위가 크면 병행성 수준이 낮아지고, 로킹 단위가 작으면 병행성 수준이 높아진다.
교착상태(Deadlock)
한 트랜잭션이 완료되지 못해 LOCK상태가 계속 유지되는 경우 다른 트랜잭션들의 작업이
더 이상 진행되지 못하고 무한정 기다리는 상태
2단계 잠금 규약(Two-Phase Lock Protocol)
트랜잭션 스케줄의 직렬성을 보장하는 대표적인 잠금 기법
트랜잭션이 잠금만 수행할 수 있고 잠금해제는 수행할 수 없는 확장(Growing)단계와 트랜잭션이 잠금 해제만 수행할 수 있고 잠금은 수행할 수 없는 단계인 축소(Shrinking)단계로 수행하도록 함. 그러나, 교착상태를 예방 할 수는 없음
타임스탬프(Time Stamp)
각 트랜잭션이 데이터에 접근할 시간을 미리 지정하여 기억시킨뒤 그 시간(Time stamp)의
순서에 따라 순서대로 데이터에 접근하여 수행하는 방법
교착상태가 발생하지 않음. 병행제어를 하지 않았을 때의 문제점
① 갱신분실(Lost Update)
② 모순성(Inconsistency)
③ 연쇄 복귀(Cascading Rollback)
④ 비완료 의존성(Uncommittes Dependency)
인덱스
수많은 데이터 중에서 원하는 자료를 빠르고 효율적으로 검색하기 위해서 사용하는 방법
인덱스 구조
① B-트리(Balanced Tree) : 검색의 효율을 높이기 위해 자료의 구조를 균형있는 트리 구조
로 나타내는 방법
② B+-트리 : B트리의 변형으로, 단말 노드를 찾기위한 인덱스를 제공하는 인덱스 세트와
단말 노드로만 구성되어있는 순차세트로 구성
단말 노드만으로 순차검색이 가능
③ 클러스터드 인덱스(Clustered Index)
테이블에서 하나의 속성을 기준으로 정렬시킨 후, 테이블을 재구성하여 인덱스를 만드는
방법. 테이블의 물리적 순서(실제 순서)와 인덱스 순서가 동일. 하나의 테이블에는 하나의 인덱스만 만들 수 있음
④ 넌 클러스터드 인덱스(Non Clustered Index)
테이블을 재구성하지 않고, 데이터 주소를 이용하여 인덱스를 만들어 주소값을 이용하여
검색하는 방법. 하나의 테이블에 여러 개의 인덱스를 만들 수 있음. 인덱스 구조보다 다소 복잡해 질 수 있음(검색 효율 떨어짐)
분산 데이터베이스(Distributed Database)
논리적으로는 같은 시스템에 속하지만, 물리적으로는 컴퓨터 네트워크를 통해 분산되어 있는 데이터베이스
분산 데이터베이스 시스템의 구성요소
분산처리기, 분산데이터베이스, 통신 네트워크
분산 데이터베이스 목표
① 위치 투명성
② 중복 투명성
③ 병행 투명성
④ 장애 투명성
분산 데이터베이스 장,단점
장점 : 시스템 성능이 향상, 신뢰성, 가용성이 높음, 분산제어 가능, 데이터 공유성 향상
단점 : 데이터베이스설계 어려움, 처리비용 증가, 소프트웨어개발비용증가, 잠재적 오류 증가
데이터 웨어하우스
한 조직이나 사용자의 의사결정에 도움을 주기 위하여 기간 내의 저장된 대량의 데이터를 공통의 형식으로 변환하여 관리하는 데이터베이스
데이터 마트
데이터웨어하우스의 축소판으로, 데이터의 한 부분에서 사용자가 관심을 갖는 데이터들을 담은 비교적 작은 규모의 데이터 웨어하우스
데이터 마이닝
데이터 웨어하우스와 같은 대량의 데이터에서 실제로 존재하지 않는 정보를 얻어내기 위해
각 데이터의 상관관계를 통계적분석, 인공지능 기법 등을 통해 통계적 규칙이나 패턴을 찾아내는 것
OLAP(Online Analytical Processing)
사용자가 직접 데이터베이스 검색과 분석을 통해 문제점이나 해결책을 찾도록 해주는 분석형 애플리케이션 개념
☑OLAP 종류
① MOLAP : 다차원 데이터를 저장하기 위해 특수한 구조의 다차원 데이터베이스를 사용
② ROLAP : 관계형 데이터베이스와 관계형 질의어를 사용하여 다차원데이터를 저장하고
분석
③ HOLAP : ROLAP + ROLAP
☑OLAP 연산
① Roll-up : 구체적인 내용의 상세 데이터로부터 요약된 형태의 데이터로 접근하는 기능
② Drill-down : 요약된 형태의 데이터로부터 구체적인 내용의 상세 데이터로 접근하는기능
③ Drill-through : 데이터웨어하우스나 OLTP에 존재하는 상세 데이터에 접근하는 기능
④ Drill-across : 다른 데이터 큐브의 데이터에 접근 하는 기능
⑤ Pivoting : 보고서의 행, 열, 페이지 차원을 바꾸어 볼 수 있는 기능
⑥ Slicing : 다차원 데이터 항목들을 다양한 각도에서 조회하고 자유롭게 비교하는 기능
⑦ Dicing : Slicing을 더 세분화하는 기능
스타 스키마(Star Schema)
OLAP와 같은 다차원 분석을 지원하기 위한 데이터 모델링 방법
OLTP(On-Line Transaction Processing)
온라인 업무 처리 형태의 하나로, 네트워크 상의 여러 이용자가 실시간으로 데이터베이스의
데이터를 갱신하거나 검색하는 등의 단위 작업을 처리하는 방식
ODBC(Open DataBase Connectivity)
프로그램과 데이터베이스의 종류에 관계없이 자유롭게 데이터베이스에 접근하여 사용할 수
있도록 Microsoft사가 만든 응용프로그램의 표준 인터페이스(API)
객체(Object)
유형이나 무형으로 현실 세계에 존재하는 개체를 추상화 한 것
속성(Attribute)
객체의 특성이나 상태, 관계데이터베이스의 속성과 유사
메시지(Message)와 메소드(Method)
메시지 : 객체에 어떤 처리를 하도록 지시하는 명령
메소드 : 메시지에 따라 객체가 실행해야 할 검색,삽입,삭제,변경 등과 같은 구체적인 연산
클래스(Class)
유사한 성격과 공통적인 특성을 갖는 객체들의 모임
한클래스 내의 객체들은 유사한 구조를 가짐
캡슐화(Encapsulation)
객체의 상세한 내부내용(데이터와 연산)을 객체 외부에 숨기고 필요한 사항만을 인터페이스
를 통해 보여주고 메시지를 통하여 다른 객체와 상호작용하도록함
= 정보은닉(Information Hiding)
추상화(Abstraction) : 객체가 어떤 기능을 수행할 것인지를 생각하여 중요하다고 판단하
는 속성이나 연산만을 추출해내고 복잡한 내부는 감추는 작업
일반화(Generalization) : 같은 속성을 가지고 있는 유사한 클래스들을 분류하여 새로운
클래스를 정의하는 작업
상속(Inheritance) : 상위클래스의 속성와 연산을 하위 클래스에 물려주는 것
다형성(Polymorphism) : 여러 클래스들이 공통으로 가지고있는 동일한 이름의 연산이 각
클래스에 따라 다르게 동작하는 것. 즉, 동일한 이름의 연산을 다른 목적으로 사용할 수 있게 함
오버라이딩(Overriding), 오버로딩(Overloading)
①오버라이딩 : 상위클래스의 연산을 하위클래스에서 재정의
②오버로딩 : 상위클래스의 연산과 다른 매개변수 개수와 형태를 추가하여 연산을 다중 정의
동적 바인딩(Dynamic Binding) : 실행 시간에 하위 클래스의 객체타입에 따라서 하위 클
래스의 적합한 동작이 자동으로 정해지는 것
오버라이딩의 다형성 지원
소프트 웨어 디자인 패턴(Software Desing Pattern) : 소프트웨어를 설계할 때 특정 상
황에서 자주 사용하는 패턴 또는 반복되는 솔류션을 일정한 양식으로 형식화 한 것
효과 : 소프트웨어 재사용 가능성 증가, 소프트웨어 설계와 품질 향상
리팩토링(Refactoring)
소프트웨어의 수행결과를 그대로 유지하면서도 소프트웨어를 구성하는 내부코드의 구조를 재. 조정하는 행위
장점 : 소프트웨어 가독성증가, 유지보수와 디버깅 한결 쉬워짐, 소프트웨어의 생산성과 품질 향상
소프트 웨어 생명 주기
개발 타당성 검토 -> 개발 계획 수립 -> 요구사항 분석 -> 소프트웨어 설계 -> 소프트웨어
구현 -> 테스트 -> 운용 -> 유지보수
소프트웨어 관리
① 요구관리 : 소프트웨어 개발이 이루어지기도 전에 고객의 요구가 불시에 바뀜으로 인하여 개발이 지연되거나 낭비되는 것을 예방하기 위하여 고객의 요구를 정확하게
추출하고 이를 문서화하며 고객과 개발자가 상호 동의하는 과정에 대한 관리
② 형상관리 : 소프트웨어를 개발하는 전체과정에서나 유지보수 과정 중에서 발생하는 각종
산출물들을 중심으로 시간 흐름에 따라 시스템 형상을 만들어 가면서 소프트
웨어 버전을 체계적으로 관리
③ 유지관리 : 소프트웨어가 개발되어 고객이 사용하는 과정 중에서 변경 사항이 발생할 경
우 이를 수용하여 소프트웨어를 수정함으로써 고객이 소프트웨어를 지속적으
로 잘 사용하도록 하는 소프트웨어 관리
④ 품질관리 : 개발된 소프트웨어가 원래의 개발목적에 부합하며 요구를 만족하는지 검증
객체지향설계 5대 원칙(SOLID) - 로버트 마틴
① Single responsibility(단일 책임 원칙)
② Open closed principle(개방 폐쇄 원칙)
③ Liskov substitution(리스코프 교환 원칙)
④ Interface segregation(인터페이스 분리 원칙)
⑤ Dependency inversion(의존관계 역전 원칙)
소프트웨어 아키텍처(Software Architecture)
어플리케이션 개발모델, 개발하려는 소프트웨어의 전체 골격에 대한 논리적 구조
① MVC구조 : 전체 어플리케이션을 Model, View, Control로 구분하여 사용자 인터페이스
와 비즈니스 로직을 상호 분리하여 개발하는 구조
② C/S구조 : 서비스를 요구하는 ‘클라이언트’와 서비스를 제공하는 ‘서버’로 구성
③ 다층(n-tier)구조 : 클라이언트/서버 구조의 단점을 극복하기 위하여, 클라이언트에 해당
하는 최상위 계층과 서버에 해당하는 최하위 계층 사이에 비즈니스
로직을 전담하는 중간계층을 둠으로써 비즈니스 로직을 완전히 분리
④ 저장소(Repository) 구조 : 소프트웨어 아키텍처가 다수의 서브 시스템들로 구성되어 있
을 때, 특정한 서브 시스템에 공유 저장소를 두고 나머지 서
브 시스템들이 이곳을 통해 데이터를 공유하며 효율적으로 관
리하고 서비스를 제공하는 구조
수동형 데이터 집중화구조임 <-> 능동형 데이터 집중화 구조(블랙보드구조)
알고리즘의 효율성
① 공간 효율성 : 알고리즘을 실행하는 동안 알고리즘이 필요로하는 메모리공간의 효율성
② 시간 효율성 : 알고리즘을 실행하여 종료하기까지 걸리는 시간의 효율성
☑ Big O 표기법
효율성 높음 효율성 낮음
O(c) O(log n) O(n) O(n・logn) O( ) O( ) O( ) O( )
소프트웨어 품질관리
기능성(Functionality), 사용성(Usability), 신뢰성(Reliability), 유지보수성(Maintainability),
이식성(Portability), 효율성(Efficiency)
트리거(Trigger)
참조관계에 있는 두 테이블에서 하나의 테이블에 삽입, 삭제, 갱신 등의 연산으로 테이블의
내용이 바뀌었을 때 데이터의 일관성과 무결성을 유지하기 위해 이와 연관된 테이블도 연쇄적으로 변경이 이루어질 수 있도록 하는 것
튜닝(Tuning)
데이터베이스의 성능향상과 사용자의 요구에 따라 빠른 검색을 통한 신속한 서비스 제공, 저장 공간 효율을 향상시키는 등 데이터베이스 시스템을 최적화하기 위해 재조정(조율)하는 것
정보 보안 목표
① 기밀성(Confidentiality) : 허락되지 않은 사용자나 대상이 정보의 내용을 알 수 없도록
하는 것
② 무결성(Integrity) : 허락되지 않은 사용자나 대상이 정보를 함부로 수정,삭제 등의 변경을
할 수 없도록 하는 것
③ 가용성(Availability) : 허락된 사용자나 대상이 정보에 접근하고자 할 때, 방해받지 않도
록 하는 것
행 이주(Row Migration)
새로운 데이터를 입력하거나 기존 데이터의 변경 작성 시, 데이터를 저장한 데이터 블록에
기존에 입력된 자료들에 의해 저장공간이 없을 때 블록을 옮겨 저장하는 형상
데이터 타입이 VARCHAR(가변길이 문자형)인 경우 발생
검색속도가 느려짐
행 연결(Row Chaining)
비어 있는 블록에 데이터를 삽입하고자 할 때 빈 공간의 기억공간이 적어 새로 입력하려는
데이터의 일부만 저장하고 일부는 다른 블록에 저장하여 두 블록을 연결하는 방법
시스템 카탈로그(System Catalog) =데이터 사전(Data Dictionary)
데이터 베이스에 저장되어있는 테이블, 인덱스, 뷰, 제약조건, 사용자 등 개체들에 대한 정보
와 정보들 간의 관계를 저장한 것으로 그 자체가 하나의 작은 데이터베이스이다. 특징은 다음과 같다.
①시스템 카탈로그에 저장된 데이터를 메타데이터라고 한다.
②일반사용자도 시스템 카탈로그의 내용을 검색할 수 있지만, 시스템 카탈로그의 내용을 삽
입, 삭제, 갱신 등은 불가능하다.
③시스템 카탈로그 갱신은 사용자가 SQL 문을 실행하면 시스템에 의해 자동적으로 이루어진
다.
④시스템 카탈로그는 일반 테이블과 같이 시스템 테이블로 구성된다.
뷰(VIEW)
하나 이상의 테이블로부터 유도되어 만들어진 가상 테이블
실제 물리적으로 기억공간을 차지하지 않으며, 논리적 독립성을 제공
데이터 접근제어로 보안성을 향상. 특징은 다음과 같다.
① 뷰가 정의된 기본 테이블이 제거되면, 뷰도 자동적으로 제거
② 뷰에 대한 검색(SELECT)은 일반 테이블과 거의 동일
③ 뷰에 대한 삽입, 삭제,갱신은 제약이 따름
④ 보안 측면에서 뷰를 활용할 수 있음
⑤ 뷰는 ALTER 문을 이용하여 변경할 수 없음
⑥ 한번 정의된 뷰는 변경할 수 없으며, 삭제한 후 다시 생성해야함
무결성(Integrity)
데이터베이스의 자료가 오류 없이 정확성과 안정성을 유지하기 위한 제약조건이나 성질. 또는 데이터베이스에 저장된 데이터값과 그것이 표현하는 현실 세계의 실제값이 일치하는 정확성
무결성 제약조건
데이터베이ㅡ에 저장된 데이터의 정확성을 보장하기 위해 정확하지 않은 데이터가 데이터
베이스 내에 저장되는 것을 방지하기 위한 제약조건
DBMS 필수 기능
① 정의 기능 : 저장될 데이터의 형태, 구조 등 데이터베이스의 저장에 관한 여러 가지 사항
을 정의(생성)하는 기능
② 조작 기능 : 데이터베이스의 자료를 사용자가 이용할 수 잇도록 요구에 따라 검색, 갱신,
삽입, 삭제 등을 지원하는 기능
③ 제어 기능 : 데이터의 정확성과 안전성을 유지를 위한 관리 기능으로 데이터의 무결성 유
지, 보안, 병행 수행 제어 등을 제공
데이터베이스 언어
① 정의어(DDL) : 관계 데이터베이스에서 사용될 테이블, 스키마, 도메인, 인덱스, 뷰 등을
정의(생성)하거나 수정,제거하기 위해 사용되는 언어
② 조작어(DML) : 데이터베이스 내의 자료를 실제 사용자가 이용하기 위한 언어
③ 제어어(DCL) : 관리자가 데이터의 보안, 무결성 유지, 병행제어, 회복 등을 하기위해 사용
하는 언어
스키마 정의
데이터베이스의 전체적인 구조와 제약조건에 대한 명세를 기술, 정의
스키마 종류
① 내부 스키마 : 물리적 저장 장치 관점(기계 관점)에서 본 데이터베이스의 물리적 구조
② 개념 스키마 : 논리적 관점(사용자 관점)에서 본 전체적인 데이터 구조
③ 외부 스키마 : 전체 데이터 중 사용자가 사용하는 한 부분에서 본 논리적 구조
‘서브스키마’라고도 함
SQL(Structured Query Language)
관계 데이터베이스에서 사용되는 대표적인 언어로, 관계 대수와 관계 해석을 기초로 데이터
베이스의 작업을 보다 효율적이고, 다양하게 표현하고 처리하기 위한 고급 데이터베이스 언
어이다. 대회식이며, 기타 다른 언어로 작성된 프로그램에 삽입되어 처리할 수 있다.
보안 기술의 목표
① 정보 보호(Information Security)
② 정보 인증(Information Authentication)
③ 사용자 인증(User Authentication)
소프트웨어 테스트 기법
① 화이트 박스 테스트 기법 : 소스코드 기반 테스트, 단위 모듈 내의 결함을 발견하는 <단
위 테스트>에서 주로 사용 ex) 구조적기법, 루프테스트
② 블랙박스 테스트 기법 : 요구명세서 기반 테스트, 실제 환경과 유사한 환경 아래 전체
<시스템 테스트>에서 주로 사용 ex) 동등분할기법, 경계값 분
석 기법, 경험기반 오류 예측 기법, 원인과 결과 그래프 기법
소프트웨어 3R
① 재공학(Re-Engineering) : 기존 소프트웨어의 데이터와 기능들을 변경 or 개선하는 작업
② 역공학(Reverse Engineering) : 현재 운영중인 소프트웨어의 소스코드, 목적코드를 분석
하여 소프트웨어 구성요소와 설계도를 추정하여 만들어내는 작업
③ 재사용(Reuse) : 소프트웨어 개발 지식을 표준화함으로써 이미 개발한 소프트웨어를 나중에 반복하여 다시 사용할 수 있도록 함

댓글
댓글 쓰기