제1절 자료구조의 기본

제1항 자료구조의 개요

(1) 자료구조란?

 

그림 13자료구조

 

1) 자료를 효율적으로 사용하기 위해서 자료의 특성에 따라서 분류하여 구성하고 저장 및 처리하는 모든 작업

2) 컴퓨터에서 처리할 자료를 효율적으로 관리하고 구조화시키기 위한 학문이다자료를 효율적으로 사용하기 위해서 자료의 특성에 따라서 분류하여 구성하고 저장 및 처리하는 모든 작업을 의미한다.

3) 자료구조에 따라 저장공간의 효율성과 프로그램의 실행시간이 달라짐

 

(2) 컴퓨터 분야에서 자료구조를 배우는 이유?

1) 컴퓨터가 효율적으로 문제를 처리하기 위해서는 문제를 정의하고 분석하여 그에 대한 최적의 프로그램을 작성해야 한다.

2) 자료의 특성을 이해하고 분석하여 최적의 알고리즘을 개발하는 능력이 필요

 

 

(3) 자료구조에서 다루는 내용


 

(4) 자료구조의 분류


 

1) 단순구조

① 정수실수문자문자열 등의 기본 자료형

 

2) 선형구조

① 자료들 간의 앞뒤 관계가 1:1의 선형관계

② 리스트연결리스트스택덱 등

 

3) 비선형구조

① 자료들 간의 앞뒤 관계가 1:n, 또는 n:n 의 관계

② 트리그래프 등

 

4) 파일구조

① 레코드의 집합인 파일에 대한 구조

② 순차파일색인파일직접파일 등

 

기출문제비선형 구조와 선형 구조가 옳게 짝지어진 것은?

1. 스택(Stack)     2. (Queue)

3. 트리(Tree)      4. 연결리스트(Linked List)

5. 그래프(Graph)

 

비선형 구조: 1, 2, 5     선형구조: 3, 4

비선형 구조: 3, 5         선형구조: 1, 2, 4

비선형 구조: 1, 2, 3     선형구조 4, 5

비선형 구조: 3             선형구조: 1, 2, 4, 5

 

1.       

제2항 기본자료형

(1) 정수형

1) 십진수, 8진수, 16진수로 표현가능

2) 접미사

① l or L : long 상수

② u or U: unsigned 상수

3) 종류

 

(2) 실수형

1) 123.4, 1.234e2, 1.234E2, 1.234f, 1.234d 의 형태로 표현

2) 접미사

① f or F : float

② d or D : double

3) 종류

 

(3) 문자형

1) ‘a’, ‘A’, ‘0’ 과 같이 표현

2) Single quote 사용

3) 제어문자(Escape sequence) 표현

`

4) 종류

 

(4) 문자열형

1) “SEOUL”와 같이 double quote로 둘러싸인 일련의 문자들

2) “”: 빈 문자열

3) 문자상수 ‘a’와 문자열 상수 “a”는 구분되어야 한다.

4) 문자열은 반드시 null(‘\0’) 로 끝난다.

 

제3항 선형 구조(Linear Structure)

(1) 리스트 (List)

1) 리스트의 종류

① 선형리스트(Linear List)

ü 배열과 같이 연속되는 기억장소에 저장되는 리스트를 말한다.

ü Array(배열)

 

 

② 연결 리스트

ü 자료들이 반드시 연속적으로 배열되어 있지 않아도 노드 포인터 부분을 이용하여 서로 연결되어진 구조를 말한다.

ü 포인터

 

 

(2) 선형 리스트 (Linear List)

1) 연속적인 기억장소에 저장된 리스트

2) 순차리스트 또는 연접리스트(Dense List) 라고도 함

3) 임의의 노드에 접근을 할 때는 인덱스(Index)를 사용하므로 포인터가 없음

4) 장점

① 간단한 자료구조

② 저장 효율이 뛰어남 (기록밀도: 1)

③ 접근 속도(Access Time)가 빠름

5) 단점

① 삽입과 삭제가 어려움

② 삽입 및 삭제시 삽입하거나 삭제할 위치 이후의 모든 자료의 이동이 필요

 

(3) 연결 리스트 (Linked List)

1) 자료들을 임의의 기억공간에 기억시키고자료 항목의 순서에 따라 노드의 포인터 부분을 이용하여 서로 연결시킨 자료 구조

 

 

2) 장점

① 자료의 삽입 및 삭제가 용이

② 비연속적 (한 리스트를 여러 개의 리스트로 분리하기 쉬움)

③ 희소행렬(행렬의 요소들 중에서 많은 부분이 0으로 되어 있는 행렬)을 연결 리스트로 표현시 기억장소 이용 효율이 좋음

 

3) 단점

① Access Time이 느림

② 기억장소 이용 효율이 나쁨(저장되지 않은 빈 공간 발생)

③ 포인터를 위한 추가 공간이 필요

④ 중간노드 연결이 끊어지면 그 다음 노드를 찾기 힘듬

 

4) 종류

① 단순 연결 리스트 (단순 링크드 리스트)

ü 한 방향으로만 가리키고 있다.

그림  SEQ 그림 \* ARABIC 20. single linked list

 

② 이중 연결 리스트

ü 양 방향으로 가리키고 있다.

그림  SEQ 그림 \* ARABIC 21. double linked list

 

③ 단순 환형 연결 리스트

 


 

(4) 스택 (Stack)

1) 정의

① top이라고 하는 리스트의 한쪽 끝에서만 삽입과 삭제가 일어나는 자료구조

② 자료의 후입선출(last-in-first-out) 방법

ü 자료의 삽입: TOP = TOP + 1

ü 자료의 삭제: TOP = TOP – 1;

ü Overflow 발생스택의 크기가 M일 때, TOP > M 이면 Overflow 발생

 

2) 용도

① 인터럽트의 처리

② 수식의 계산 (산술식 표현)

③ 서브루틴의 복귀번지 저장

④ 부 프로그램(sub program)의 호출 함수 호출의 순서 제어

 

3) 순환적 프로그램을 처리하기 위한 요소

① 스택

② 복귀주소

③ 순환에서 탈출하는 조건

 

4) 삽입 알고리즘

 

Top = Top + 1

if Top > M then

           Overflow

else

           X(Top) = item

 

5) 삭제 알고그림

 

if Top = 0 then

           Underflow

else

           item = X(Top)

Top = Top - 1

 


 

(5) 큐 (Queue)

1) 큐의 정의

① rear라고 하는 리스트의 한쪽 끝에서 삽입이 일어나고 front라 부르는 반대쪽 끝에서 삭제가 일어나는 자료구조

② FIFO(first-in-first-out) 구조

 

2) 형태


3) 용도

① 운영체제의 작업 스케쥴링 등에 응용되는 것으로 가장 적합한 자료구조

② 키보드 버퍼 이용시

③ 스풀(spool) 운용시

 


 

(6) 데크 (Deque, Double Ended Queue)

1) 데크의 정의

① 서로 다른 방향에서 입출력이 가능한 구조 (삽입과 삭제가 양쪽 끝에서 일어남)

② 입력이 한쪽에서만 발생하고출력은 양쪽에서 일어날 수 있는 입력제한과 입력은 양쪽에서 일어나고 출력은 한곳에서만 이루어지는 출력제한이 있음.

③ 스택과 큐를 복합한 형태

④ 양 끝에서 삽입과 삭제가 가능하게 하도록 큐를 일반화한 것

 


 

제4항 비선형 구조(Non-Linear Structure)

(1) 트리 (Tree)

1) 트리의 정의

① 트리는 1개 이상의 노드를 갖는 집합으로 노드들은 다음과 같은 조건을 만족한다.

ü 트리에는 루트(root)라고 부르는 특별한 노드가 있다.

ü 트리는 사이클이 없는 그래프 (acyclic graph) 이며계층 구조를 이룬다.

 

② 노드와 간선으로 구성되어져 있고사이클이 없다.

③ Linked List로 표현할 때 가장 효율적임

④ 계층형 구조(hierarchical structure)를 나타내기 편리함

ü 연속적

 


 

2) 트리의 용어

 

 

① Node

ü Tree의 기본 구성요소

ü A, B, C, D, E, F, G, H, I, J, K, L, M

② 근노드(Root Node)

ü 가장 상위에 위치한 노드

ü A

③ 레벨(Level)

ü 근노드를 기준으로 특정 노드까지의 경로길이

ü K, L, M의 레벨은 4

④ 조상노드(Ancestors Node)

ü 특정 노드에서 루트에 이르는 경로상의 모든 노드

ü K의 조상노드는 E, B, A

⑤ 자식노드(Son Node)

ü 특정 노드에 연결된 다음 레벨의 노드

ü E의 자식노드는 K, L

⑥ 부모노드(Parent Node)

ü 특정 노드에 연결된 이전 레벨의 노드

ü K의 부모노드는 E

⑦ 형제노드(Sibling)

ü 같은 부모를 가진 노드

ü H의 형제노드는 I, J

⑧ 깊이(Depth, Height)

ü 트리의 최대 레벨

ü 트리의 깊이는 4

⑨ 차수(Degree)

ü 특정 노드에 연결된 자식노드의 수

ü D의 차수는 3

ü B의 차수는 2

⑩ 트리의 차수(Degree)

ü 트리의 노드중 최대 차수

ü 이 트리중에서 D의 차수는 3으로 가장 많다

⑪ 단말노드(Terminal Node, Leaf Node)

ü 트리의 제일 마지막에 위치한 노드

ü K, L, F, G, M, I, G

 


 

 

3) 트리의 특징

① 연결 리스트 구조로 표현 (포인터 이용)

 


 

4) 트리의 운행법(Traversal)

① 운행법 정의

ü 컴퓨터 기억 공간에 표현된 트리의 각 노드를 중복되지 않게 정해진 순서대로 전부 검색하여 트리의 정보에 관한 사항을 알고자 함

ü 이진 트리의 운행법은 산술식의 표기법과 관련됨

 

② 운행법 종류


 

ü Preorder (전위)

• root > left > right

• a, b, d, e, c, f, h, g

 

ü Inorder (중위)

• left > root > right

• d, b, e, a, h, f, c, g

 

ü Postorder (후위)

• left > right > root

• d, e, b, h, f, g, c, a

 


③ 수식의 표기법

ü 산술식을 계산하기 위해 기억공간에 기억시키는

ü 표기법의 종류

 

 

• 전위 표기법(Prefix notation)

연산자 > left 피연산자 > right 피연산자

+ab

• 중위 표기법(Infix notation)

left 피연산자 연산자 > right 피연산자

a+b

• 후위 표기법(Postfix notation, reverse Polish notation)

left 피연산자 > right 피연산자 연산자

ab+

 

 

④ 표기법 변환

ü 현재의 표기법에서 우선순위가 가장 높은 두개의 피연산자와 한 개의 연산자를 바꾸고자 하는 표기법으로 바꿈바뀐 연산은 하나의 피연산자로 생각하고 위의 과정 반복

ü 중위표기법->후위표기법

• 5 + 2 / 7  5+27/  527/+

 

ü 중위표기법->전위표기법

• 5 + 2 / 7  5+/27  +5/27

 

ü 후위나 전위 표기법에서 중위 표기법으로 바꾸려면 산술식의 앞쪽에서부터 연속된 2개의 피연산자와 하나의 연산자를 찾아 중위 표기법으로 바꾸는 과정을 반복함

 


 

 

5) 트리의 종류

① 이진트리

ü 정의

• Degree 2이하로 구성된 트리

 

ü 특성

• 깊이가 k인 이진 트리의 최대노드의 수 2k - 1

• 이진 트리의 레벨 에서 최대노드의 수 2(i-1)

• n0 = n2 + 1 (n0: 이진 트리의 터미널노드, n2: 차수가 2인 노드수)

 

ü 종류

• 정이진 트리(FBT, Full Binary Tree)

Depth(k), 전체노드 수 2i – 1

레벨마다 2(i-1) 개 노드 가득

 


 

 

• 전이진 트리(CBT, Complete Binary Tree) or 완전 이진트리

정이진 트리의 각 노드에 붙인 1~n의 일련번호와 1:로 대응되는 트리

중간에 비워 있으면 안 됨

 

 

(Heap)

¡ 완전 이진 트리에 있는 노드 중에서 키 값이 가장 큰 노드나 키 값이 가장 작은 노드를 찾기 위해서 만든 자료 구조

¡ 최대 힙(max heap)

부모 노드의 키 값이 자식 노드의  키 값보다 항상 크거나 같은 크기의 관계

 

 

¡ 최소 힙(min heap)

부모 노드의 값이 자식 노드의 키 값보다 항상 작거나 같은 크기의 관계

 

 

¡ 힙이 아닌 예

 

 

• 사향 이진 트리(SBT, Skewed Binary Tree)

이진트리가 한쪽 방향

한 방향으로만 자식노드를 가지며 기억장소의 낭비 심각

 


 

 

(2) 그래프(Graph)

1) 그래프의 정의

① 노드와 간선으로 구성되어져 있고사이클이 있다.

② 각각의 단위 정보를 링크로 연결하여 구조화시킨 자료 구조

③ 정점(vertex) : 노드들의 집합

④ 간선(edge) : 정점들 사이의 상호 연결의 집합임의의 점들의 쌍을 연결

 

2) 그래프의 유형

 

① 트리는 사이클이 없는 그래프

② 사이클(cycle)은 같은 정점에서 시작과 끝이 이어지는 경로

 

3) 인접행렬(Adjacency Matrix)

 

4) 인접 리스트

5) 최소비용 신장트리

① 가중치가 가장 작은 간선들을 사이클이 이루어지지 않도록 연결시켜 만든 그래프








 데이터베이스 시스템의 구성 


데이터베이스 시스템 = DB + DBMS + 데이터베이스 언어 사용자



데이터베이스 시스템의 구성


데이터베이스(DB, Database)


한 조직의 여러 응용 시스템이 공용(Shared)하기 위해 최소한의 중복으로 통합(Integrated) 되고저장(Stored) 된 운영(Operational) 데이터의 집합이다.



 

데이터베이스 언어(Database language)


데이터베이스를 구축조작검색하는데 사용되는 프로그래밍 언어


 

 

사용자


① 데이터베이스 관리자(DBA)

② 데이터베이스 응용 프로그래머

③ 데이터베이스 사용자


 

DBMS(Database Management System)


데이터베이스를 구축하고 이용하는 기능을 제공하는 시스템 소프트웨어

 



DBMS (Database Management System) 



DBMS의 정의


① 응용 프로그램과 데이터베이스의 중재자로서 모든 응용 프로그램들이 데이터베이스를 공용할 수 있도록 관리해 주는 소프트웨어 시스템이다.


② 데이터베이스를 액세스하기 위해 필요한 제어접근방법관리 등의 기능을 수행하는 소프트웨어이다.


③ 데이터베이스를 설계하는 사람이 장래의 업무처리 확대나 변경을 충분히 예측하여 그것을 바탕으로 만들어 놓은 프로그램이다.


④ DB의 구성접근방법관리유지에 대한 모든 책임을 지고 있다.


⑤ 데이터베이스의 생성과 관리를 담당하는 소프트웨어 패키지


⑥ 보조기억장치에 저장되어 있는 데이터베이스에서 필요한 데이터를 검색하거나 데이터를 삽입수정삭제 등을 효율적으로 지원하기 위한 프로그램의 집합체


⑦ 종속성과 중복성의 문제를 해결하기 위해서 제안된 시스템



DBMS의 장점


① 표준화의 범기관적 시행

② 데이터의 보안 보장이  용이

③ 데이터 무결성 및 일관성 유지

④ 데이터 중복 최소화



DBMS의 필수기능


 내장 SQL (Embedded-SQL)

호스트 언어(C, C++, 비쥬얼베이직 등)에 삽입되는 SQL로써 주로 일괄처리나 동일 업무 반복시 사용되었다.


정의기능(Definition Facility)


① 데이터 정의어(DDL, Data Definition Language)을 이용하여 데이터베이스의 물리적 구조를 정의

② 데이터의 형구조데이터가 데이터베이스에 저장될 때의 제약조건 등을 명시하는 기능

③ 데이터의 논리적 구조와 물리적 구조 사이의 변환이 가능하도록 두 구조 사이의 사상(Mapping)을 명세하여 하나의 물리적 구조로 여러 응용 프로그램이 요구하는 데이터 구조를 지원하게 하는 것

④ 다양한 응용 프로그램과 데이터베이스가 서로 인터페이스를 할 수 있는 방법을 제공



제어기능(Control Facility)


① 데이터 제어어(DCL, Data Control Language)를 이용하여 데이터의 사용 권한 제어

② 데이터 무결성(Integrity)과 일관성을 유지

③ 보안(Security)과 권한(Authority) 검사

④ 병행수행 제어(Concurrency control)



조작기능(Manipulation Facility)


① 데이터 조작어(DML, Data Manipulation Language)를 이용하여 응용 프로그램을 수행 (데이터 검색입력수정삭제 등)

② 사용자의 응용 프로그램과 데이터 간의 인터페이스 수단 제공

③ 데이터 요청변경 등을 위한 질의를 수행

④ 데이터베이스를 접근하여 데이터의 검색삽입삭제갱신 등의 연산 작업을 위한 사용자와 데이터베이스 사이의 인터페이스 수단을 제공




데이터베이스 스키마(Schema)


스키마의 개요


① 1975년 미국의 국립 표준화 기관 ANSI/SPARC (American National Standards Institute / System Planning And Requirements Committee) 에서 제안


② 데이터베이스를 관점(view)에 따라 3개의 계층으로 분리하여 데이터베이스 사용자에게 내부적으로 복잡한 데이터베이스 구조를 단순화시킨 관점을 제공하는 것을 말함



데이터의 표현 방법


① 외부단계(External Level)


⊙ 각각의 데이터베이스 사용자 관점 또는 사용자 뷰(User View)를 표현

 뷰 단계(View Level) 라고도 함



② 개념단계(Conceptual Level)


 데이터와 그들 간의 관계(Relationship)를 표현

 논리 단계(Logical Level) 라고도 함 데이터 모델 사용함



③ 내부단계(Internal Level)


 물리적인 저장장치에서 데이터가 실제적으로 저장되는 방법을 표현

 물리 단계(Physical Level)라고도 함 물리적 데이터 모델 사용함



스키마의 정의


① 데이터베이스의 구조와 제약 조건에 대한 명세(specification)를 기술한 것

② 데이터베이스를 구성하는 데이터 객체이들의 성질이들 간에 존재하는 관계그리고 데이터의 조작 또는 이들 데이터 값들이 갖는 제약 조건에 관한 정의를 총칭하는 용어이다.

③ 스킴(Scheme)이라고도 한다.



스키마의 특징


① 데이터 사전(Data Dictionary)에 저장된다.

② 다른 이름으로 메타데이터(Meta-data)라고도 한다.

③ 데이터베이스의 구조(개체속성관계)에 대한 정의


※ 데이터 사전(Data Dictionary) 이란


① 데이터사전이란 대부분 읽기 전용으로 제공되는 테이블 및 뷰들의 집합으로 데이터베이스 전반에 대한 정보를 제공한다.


② 데이터베이스는 명령이 실행될 때 마다 데이터 사전을 액세스한다.


③ DB 작업동안 데이터 사전을 읽어 객체의 존재 여부와 사용자에게 적합한 Access 권한이 있는지를 확인한다.


④ 데이터 사전에 저장되는 내용


 사용자 정보

 권한과 규칙 정보

 데이터베이스 스키마 객체(TABLE, VIEW, INDEX, …) 정보

 무결성 제약 조건에 관한 정보

 데이터베이스의 구조 정보



스키마의 3계층


① 외부 스키마(external schema)


 사용자의 요구사항을 도출하는 과정이다.

 사용자의 관점에서 보고자 하는 정보의 집합

 (View) 또는 서브-스키마(Sub-Schema) 라고도 한다.

 전체 데이터베이스의 한 논리적인 부분으로 볼수 있으므로 서브 스키마(sub schema)라고도 한다.

 공용의 의미보다는 어느 개인이나 특정 응용에 한정된 논리적 데이터 구조

 데이터베이스의 개별 사용자나 응용 프로그래머가 접근하는 데이터베이스를 정의



② 개념 스키마(conceptual schema)


 데이터베이스의 전체적인 논리적 설계를 의미하는 것으로 데이터 객체성질관계제약조건에 관한 것 (개체간의 관계와 유지해야 할 제약 조건을 나타냄)

 데이터베이스 파일(file)에 저장되어 있는 레코드(Record)와 데이터 항목(item)의 이름을 부여하고 그들 사이에 관계의 구조를 나타내는 스키마(schema)

 논리 스키마 (Logical Schema) 라고도 한다.

 데이터베이스 접근권한보안정책무결성 규칙을 명세화 함.



③ 내부 스키마(internal schema)


 데이터 저장 구조의 세부사항과 접근 경로를 기술

 논리 스키마를 컴퓨터 내부에 저장할 수 있는 물리적인 구조로 변환한 것

 실제로 저장될 데이터베이스 내부 형식을 물리적으로 정의

 물리 스키마(Physical Schema) 라고도 함

 



사용자



DBA(Database Administrator, 데이터베이스 관리자)


① 데이터베이스 구조 등과 관련된 업무를 처리하며데이터베이스 전반에 책임을 갖는 사람 또는 조직


② 기업 또는 조직의 데이터베이스에 발생하는 데이터와 데이터를 접근하는 응용 프로그램을 통제하는 사람 또는 조직


 

응용 프로그래머(Application Programmer)


① 일반 사용자(최종 사용자)가 이용할 응용 프로그램을 개발하는 사용자 또는 사용 집단


② 데이터베이스와 관련된 구조 정보 및 사용자 요구사항을 파악하여 실제로 데이터베이스를 활용하기 위한 응용 프로그램을 개발하는 프로그래머



일반 사용자(최종 사용자, End User)


① 데이터베이스 관련 작업을 수행하기 위하여 응용 프로그램 또는 쿼리 프로그램 등으로 디스크를 저장장치에 있는 데이터에 접근하고 처리하는 작업을 수행하는 사람 또는 조직




DBA(Database Administrator)의 기능



DBA의 정의


① 데이터베이스 시스템의 원활한 기능을 수행하기 위하여 데이터베이스 구성 및 관리 운영 전반에 대한 책임을 가지고 직무를 수행하는 사람 또는 조직


② 기업 또는 조직의 데이터베이스에 발생하는 데이터와 데이터를 접근하는 응용 프로그램을 통제하는 사람 또는 조직


③ 데이터와 그 데이터에 접근하는 프로그램 모두를 중앙 통제하는 사람 또는 조직


④ 응용 프로그래머가 새로운 타입의 레코드를 만들기를 원하거나 기존 레코드에 새로운 데이터 항목을 포함 또는 크기를 확장함으로써 수정하기 원하면 DBA의 허락을 받아야 함



 

DBA의 주요 역할



① 데이터베이스 설계와 운영


 데이터베이스의 스키마 정의

 저장구조와 액세스 방법 정의

 보안 및 권한부여

 백업회복 절차를 정하고 수행

 데이터 사전의 유지 및 관리

 데이터베이스 구축



② 시스템 감독 및 분석 기능


 시스템 감시 및 성능 분석

 데이터베이스의 이상 현상 감시

 미들웨어 소프트웨어 등 종합적 자원관리



③ 행정 및 불편 해결


 사용자의 요구와 불평을 청취하고 해결

 데이터의 표현이나 문서화 표준 설정시행

 




데이터 독립성


개념

① 하위 단계의 구현 내용을 추상화하여 상위 단계에서는 인지하지 못하도록 해야 한다.



독립성의 종류


① 물리적 데이터 독립성(Physical Data Independency)


 3단계 데이터베이스 구조 중 최하위 단계인 내부 단계의 스키마가 변경되어도 외부 단계와 개념 단계의 스키마에는 영향을 미치지 않도록 지원하는 것


 데이터베이스 저장장치의 구조가 변경되어도 응용 프로그램이나 개념 스키마에는 영향을 미치지 않는 것



② 논리적 데이터 독립성(Logical Data Indepencency)


 3단계 데이터베이스 구조 중 중간 단계인 개념 단계의 스키마가 변경되어도 최상위 단계인 외부 단계의 스키마에 영향을 미치지 않도록 하는 것

 

 데이터베이스 논리적 구조가 변경되어도 응용 프로그램에는 영향을 미치지 않는 것








 정보 시스템의 정의 


한 조직체에서 필요한 DATA를 수집저장해 두었다가 필요시에 처리해서 의사 결정에 유용한 정보를 생성하고 분해하는 수단을 말한다.





 자료와 정보 


정보는 전 세계에 산재해 있는 자료들 중에 필요한 것만을 골라내어 얻을 수도 있지만경우에 따라서는 전문가들의 손에 의해 자료들을 가공하고 처리해야만 정보로서의 가치를 얻을 수 있는 것들이 많다예를 들어 우리나라에서 한해 동안 소비되는 담배의 양이 얼마나 되는지를 알기 위해서는 각 시∙도에서 소비되는 담배의 양에 관한 자료를 수집하여 집계를 해야 한다이렇게 집계된 결과는 바로 우리가 얻고자 하는 정보가 되고각 시∙도의 담배 소비량은 정보를 얻기 위해 입력한 자료가 된다.


자료


① 현실 세계로부터 단순한 관찰이나 측정을 통해 수집된 사실이나 값을 말한다.

② 객관적 실제의 반영이며그것을 전달할 수 있도록 기호화한 것


※ 고객의 주소성별이름나이휴대폰 기종휴대폰 활용 횟수 등


정보


① 자료를 특정한 목적과 문제해결에 도움이 되도록 가공한 것

② 자료를 처리해서 얻을 수 있는 결과

③ 사용자가 목적하는 값

④ 의사결정을 위한 값


※ 중년층의 휴대폰 기종중년층의 휴대폰 활용 횟수




 자료처리 시스템의 종류 


일괄처리 시스템


① 일정시간이나 일정양의 데이터를 모아 한꺼번에 처리하는 시스템

② 시스템 중심의 자료 처리 방법

③ 테이프와 같은 순차 접근 방법을 사용하는 업무에 적합

④ 단위 시간당 처리하는 작업수가 많으므로 시스템 성능이 높음


※ 급여 계산회계 마감업무세무 처리

 

온라인처리 시스템


① 데이터 발생데이터 처리 요구 시 즉시 처리하는 시스템
② 사용자 중심의 자료 처리 방법
③ 실시간 처리
④ 통신 제어기 필요

 

분산처리 시스템


① 분산되어 있는 여러 컴퓨터를 연결하여 논리적으로 하나의 시스템으로 들어 데이터를 처리하는 시스템
② 분산 처리기분산 데이터베이스 필요
③ 시스템 구축이 어려운 반면 효용성과 융통성이 높고 시스템 확장이 용이

 



 데이터베이스의 개념 


데이터베이스의 등장 배경


① 여러 사용자가 데이터를 공유해야 할 필요가 생김

② 데이터의 수시적인 구조 변경에 대해 응용 프로그램을 매번 수정하는 번거로움을 줄이고 싶음

③ 물리적인 주소가 아닌 데이터 값에 의한 검색을 수행하고 싶음

 

데이터베이스의 정의


① 논리적으로 연관된 레코드나 파일의 모임
② 공통 목적을 지원하기 위한 서로 관련된 자료들의 집합체
③ 데이터베이스는 단순한 자료의 모임이라기 보다는 어떠한 조직 내에서 여러 사람에 의해 공유되어 사용 목적으로 통합적으로 조직되고 관리되는 운영 자료의 집합이다.


데이터베이스의 사전적 정의


한 조직의 여러 응용 시스템이 공유(shared)하기 위해 최소의 중복으로 통합(Integrated)저장(Stored)된 운영(Operational) 데이터의 집합



① 통합된 데이터(Integrated Data)


원칙적으로 데이터베이스는 똑 같은 데이터가 중복되지 않았음을 의미한다데이터의 중복은 일반적으로 여러 부작용을 초래할 수 있다그러나 실제로 효율성 때문에 일부 데이터의 중복을 허용하기도 한다.

 

② 공용 데이터(Shared Data)

  

한 조직에서 여러 응용 프로그램이 공동으로 소유유지 가능한 데이터이다.

 

③ 운영데이터(Operational Data)


어떤 조직도 그 고유의 기능을 수행하기 위해 반드시 유지해야 할 데이터가 있기 마련인데 이것을 운영 데이터라 한다단순한 입출력 데이터나 작업 처리상 일시적으로 필요한 임시 데이터는 운영 데이터로 취급하지 않는다.


 

④ 저장된 데이터(Stored Data)


책상서랍이나 파일 캐비닛에 들어 있는 데이터가 아니라 컴퓨터가 접근할 수 있는 저장 매체(자기테이프디스크)에 저장된 데이터 집합이다.




 데이터베이스의 특징 

 

① 실시간 접근성(real-time accessibility)

질의에 대한 실시간 처리 및 응답

 

② 내용에 의한 참조(content reference)

특정 데이터를 조회수정하기 위해서는 실제 저장된 위치나 주소가 아닌 값에 따라 참조함

 

③ 동시 공유(concurrent sharing)

여러 사용자들은 같은 데이터를 동시에 사용할 수 있어야 함

 

④ 계속적인 변화(Continuous evolution)

정확한 정보를 제공하기 위해서 최신의 내용으로 계속 갱신삽입삭제 연산을 통해 이루어짐

 



 데이터베이스의 장˚단점 



장점

단점

데이터 중복 최소화

여러 사용자에 의한 데이터 공유

데이터의 일관성

데이터의 무결성

정확한 최신의 정보이용 가능

데이터 처리속도 증가

많은 양의 종이 파일 간소화

초기 구축 비용이 많이 소요됨 (추가적인 하드웨어 및 DBMS 구입 비용(

데이터베이스 전문가 부족

시스템이 복잡

복잡한 연산으로 고급 인력 필요

어려운 백업 및 회복

고비용

 



 데이터베이스의 ACID 


ACID(원자성, 일관성, 고립성, 지속성)는 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질을 가리키는 약어이다. 


일관성(Consistency)


트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것을 의미한다. 전통적인 데이터베이스 시스템의 일관성은 휘발성 저장장치와 비 휘발성 저장장치 사이의 데이터 유지에 필요하다시스템 장애에 따른 휘발성 저장장치에 저장된 데이터와 비 휘발성 저장장치에 저장된 데이터와의 일관성 유지는 안전한 데이터 처리에 중요한 이슈이다.

원자성(Atomicity)


트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는것을 보장하는 능력이다. 예를 들어, 자금 이체는 성공할 수도 실패할 수도 있지만 보내는 쪽에서 돈을 빼 오는 작업만 성공하고 받는 쪽에 돈을 넣는 작업을 실패해서는 안된다. 원자성은 이와 같이 중간 단계까지 실행되고 실패하는 일이 없도록 하는 것이다.

고립성(Isolation)


트랜잭션을 수행시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미한다. 이것은 트랜잭션 밖에 있는 어떤 연산도 중간 단계의 데이터를 볼 수 없음을 의미한다. 

지속성(Durability)


성공적으로 수행된 트랜잭션은 영원히 반영되어야 함을 의미한다. 시스템 문제, DB 일관성 체크등을 하더라도 유지되어야 함을 의미한다.


'정보처리기사 > 데이터베이스' 카테고리의 다른 글

06. 관계데이터언어(관계대수)  (0) 2017.08.01
05. 관계데이터모델  (0) 2017.08.01
04. 정렬, 탐색기법  (0) 2017.08.01
03. 자료구조(선형, 비선형)  (0) 2017.08.01
02. DBMS의 기능  (0) 2017.08.01

+ Recent posts