아래 내용은 2020 정보처리 산업기사 시나공 기본서를 공부해 요약한 내용이며
완벽하게 모든 내용을 정리한것이 아니고 제 편의껏 요약한것 입니다 보다 자세한 내용과 여러 동작에 대한 원리등이
궁금하시다면 책과 함께봐주세요
출처 : 정보처리 산업기사 필기 - 시나공 시리즈
출판사 : 길벗

1. 데이터베이스의 개념

 

1)정보 시스템

 

자료(Data) : 단순한  관찰, 측정을 통해 수집된 사실이나 값

정보(Information) : 자료를 가공처리한 결과

 

정보 시스템의 정의

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

 

자료 처리 시스템

: 일과처리 시스템, 온라인 실시간 처리 시스템, 분산 처리 시스템

 

데이터 웨어하우스(Data Warehouse)

: 조직이나 기업체의 중심이 되는 주요 업무 시스템에서 추출되어 새로이 생성된 데이터베이스로서 의사결정지원 시스템을 지원하는 주체적, 통합적, 시간적 데이터의 집합

 

2)데이터베이스의 개념

 

데이터베이스의 정의

 

- 통합된 데이터(Integrated Data)

- 저장된 데이터(Stored Data)

- 운영 데이터(Operational Data)

- 공용 데이터(Shared Data)

 

데이터베이스의 특징

 

- 실시간 접근성(Real-Time Accessbility)

- 계속적인 변화(Continuous Evolution) 

- 동시 공용(Concurrent Sharing)

- 내용에 의한 참조(Content Reference) 

 

3) DBMS의 기능

 

DBMS의 발전 배경

 

- 종속성으로 인한 문제점

- 중복성으로 인한 문제점

 

DBMS의 필수 기능

 

- 정의(Definition)

- 조작(Manipulation)

- 제어(Control)

 

DBMS의 장점

 

- 데이터의 중복을 피할 수 있어 기억공간이 절약된다

- 저장된 자료를 공동으로 이용할 수 있다

- 데이터의 일관성을 유지할 수 있다

- 데이터의 무결성을 유지할 수 있다

- 보안을 유지할 수 있다.

- 데이터를 표준화할 수 있다

 

4) 스키마(Schema)

 

스키마의 정의

: 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술

 

스키마의 3계층

 

- 내부 스키마(Internal Schema)       : 물리적 저장장치의 입장

- 개념 스키마(Conceptual Schema)  : 데이터베이스의 전체적인 논리적 구조

- 외부 스키마(External Schema)      : 사용자나 응용 프로그래머

 

5) 데이터베이스 언어

 

- 데이터 정의 언어(DDL) : 데이터 베이스를 구축(정의)하거나 수정할 목적으로 사용하는 언어

- 데이터 조작 언어(DML) : 사용자로 하여금 데이터를 처리할 수 있게 한다

- 데이터 제어 언어(DCL) : 무결성, 보안 및 권한 제어, 회복 등을 하기 위한 언어이다

 

6) 데이터베이스 사용자

(DBA, 응용 프로그래머, 일반 사용자 )

 

- DBA(DataBase Administrator) : 데이터베이스 시스템의 모든 관리와 운영에 대한 책임을 지고 있는 사람이나 그룹

- DBA의 역할

   ( 데이터베이스의 설계와 조작에 대한 책임

   ( 책임 행정시스템 감시 및 성능 분석

 

2. 데이터 모델링 및 설계

 

1) 데이터 모델의 개념

 

데이터 모델의 정의

: 현실 세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화하여 체계적으로 표현한 개념적 모형이다

 

데이터 모델의 종류

 

- 개념적 데이터 모델

- 논리적 데이터 모델

 

데이터 모델에 표시할 요소

 

- 구조(Structure) : 논리적으로 표현된 개체 타입들 간의 관계

- 연산(Operation) : 데이터베이스를 조작하는 기본 도구

- 제약 조건(Constraint) : 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건

 

데이터 모델의 구성 요소

 

- 개체(Entity) : 데이터베이스에 표현하려고 하는 현실 세계의 대상체이다

- 속성(Attribute) : 데이터의 가장 작은 논리적 단위로서 파일 구조상의 데이터 항목 또는 데이터 필드에 해당한다

- 관계(Relationship) : 개체 간의 관계 또는 속성 간의 관계이다

                             ( 일 대 일(1:1), 일 대 다(1:n), 다 대 다(n:m) )

 

2) 개체 - 관계 모델

 

개체 - 관계(Entity-Relationship) 모델의 개요

: 데이터를 개체(Entity), 관계(Relationship), 속성(Attribute)으로 묘사한다

 

E-R(개체 - 관계) 다이어그램

 

- 개체(Entity) : 사각형

- 관계(Relationship) : 마름모

- 속성(Attribute) : 타원

- 다중값 속성(복합 속성) : 이중타원

- 기본키 속성 : 밑줄 타원

- 개체 타입과 속성을 연결 : 선, 링크

 

3) 데이터 모델(Data Model)

 

관계형 데이터 모델(Relation Data Model)의 개념

: 개체 집합에 대한 속성 관계를 표현하기 위해 개체를 2차원적인 표를 사용한다

 

계층형 데이터 모델(Hierarchical Data Model)의 개념

: 트리 구조를 이용해서 데이터의 상호관계를 계층적으로 정의한 구조이다

 

망형 데이터 모델(Network Data Model)의 개념

: 그래프를 이용해서 데이터 논리 구조를 표현한 데이터 모델이다

 

4) 데이터베이스 설계

 

데이터베이스 설계 시 고려사항

 

- 무결성

- 일관성

- 회복

- 보안

- 효율성

- 데이터베이스 확장

 

데이터베이스의 설계 순서

 

1.   요구분석   : 요구 조건 명세서 작성

         ↓

2. 개념적 설계 : 개념 스키마, 트랜잭션 모델링, E-R 모델 

        

3. 논리적 설계 : 목표 DBMS에 맞는 논리 스키마 설계, 트랜잭션 인터페이스 설계

        

4. 물리적 설계 : 목표 DBMS에 맞는 물리적 구조의 데이터로 변환

        

5.     구현      : 목표 DBMS의 DDL로 데이터베이스 생성, 트랜잭션 작성 

 

3. 관계 데이터베이스 모델과 언어

 

1) 관계형 데이터베이스의 구조

 

관계형 데이터베이스의 Relation의 구조

 

- 릴레이션(Relation) : 데이터들을 표의 형태로 표현한 것이다

- 튜플(Tuple) : 릴레이션을 구성하는 각각의 행을 말한다 (튜플에 수를 카디널리티(Cardinality)라고 부른다)

- 속성(Attribute) : 데이터베이스를 구성하는 가장 작은 논리적 단위이다 (속성의 수를 (Degree)라고 부른다)

- 도메인(Domain) : 하나의 속성이 취할 수 있는 같은 타입의 원자값들의 집합이다

 

릴레이션의 특징

 

- 릴레이션에 포함된 튜플들은 모두 상이하다

- 한 릴레이션에 포함된 튜플 사이에는 순서가 없다

- 속성들 간의 순서는 중요하지 않다

- 각 속성은 릴레이션 내에서 유일한 이름을 가진다

 

2) 관계형 데이터베이스의 제약 조건

 

키(Key)의 종류

 

- 후보키(Candidate Key) : 유일성과 최소성을 만족시켜야 한다

- 기본키(Primary key) : 후보키 중에서 선택한 주 키(Main Key)

- 대체키(Alternate Key) : 후보키중 기본키를 제외한 나머지 후보키

- 슈퍼키(Super Key) : 유일성은 만족시키지만 최소성은 만족시키지 못하는 키

- 외래키(Foreign Key) : 관계를 맺고 있는 릴레이션 R1, R2에서 R1이 참고하고 있는 릴레이션 R2의 기본키와 같은

                                R1의 릴레이션의 속성을 외래키라 한다

 

무결성

- 개체 무결성 : 릴레이션에서 기본키를 구성하는 속성은 널(NULL) 값이나 중복 값을 가질 수 없다

- 참조 무결성 : 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다

 

3) 관계대수 및 관계해석

 

관계대수

: 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어이다

- 순수 관계 연산자 : Select( б ), Project( π ), Join( ⋈ ), Division( ÷ )

- 일반 집합 연산자 : UNION( 합집합 ∪ ), INTERSECTION( 교집합 ∩ ), DIFFERENCR( 차집합 - ),

                          CARTESIAN PRODUCT( 교차곱 X )

 

관계해석

 

- 수학의 술어 해석에 기반을 두고있다

- 튜플 관계해석과 도메인 관계해석이있다

- 기본적으로 관계해석과 관계대수는 관계 데이터베이스를 처리하는 기능과 능력면에서 동등하다

- 관계해석으로 표현한 식은 관계대수로 표현할 수 있다

- 관계해석은 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 지닌다

 

4) 정규화(Normalization)

 

정규화의 개요

: 더 작은 테이블로 분해해 가면서 종속성을 제거하는 것이다

 

정규화의 목적

: 중복을 배제하여 삽입, 삭제, 갱신 이상의 발생을 방지한다

 

Anomaly(이상)의 개념 및 종류

 

- 삽입 이상(Insertion Anomaly) : 불필요한 데이터가 함께 삽입되는 현상

- 삭제 이상(Delettion Anomaly) : 연쇄 삭제로 인해 정보의 손실

- 갱신 이상(Update Anomaly) : 일부 속성을 갱신함으로써 정보의 모순성이 발생

 

정규화 과정

 

비정규 릴레이션

        ↓  도메인이 원자값

제1정규형(1NF)

        ↓  부분적 함수 종속 제거

제2정규형(2NF)

        ↓  이행적 함수 종속 제거

제3정규형(3NF)

        ↓  결정자이면서 후보키가 아닌것 제거

      BCNF

        ↓  다치 종속

제4정규형(4NF)

        ↓  조인 종속성 이용

제5정규형(5NF)

 

5) SQL(Structured Query Language)의 개념

 

SQL의 개요

: 질의어지만 질의 기능만 있는 것이 아니라 데이터 구조의 정의, 데이터 조작, 데이터 제어 기능을 모두 갖추고 있다

 

데이어 정의어(DDL)

 

- CREATE : SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의한다

- ALTER : TABLE에 대한 정의를 변경하는데 사용한다

- DROP : SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 삭제한다

 

데이터 조작어(DML)

 

- INSERT : 테이블에서 조건에 맞는 튜플을 검색한다

- DLLETE : 테이블에 새로운 튜플을 삽입한다

- UPDATE : 테이블에서 조건에 맞는 튜플을 삭제한다

- SELECT : 테이블에서 조건에 맞는 튜플의 내용을 변경한다 

 

데이터 제어어(DCL)

- COMMIT

- ROLLBACK

- GRANT

- REVOKE

 

6) 내장 SQL(Embedded SQL)

 

내장 SQL의 정의
: 응용 프로그램 내에 SQL 문장을 내포하여 프로그램이 실행될 때 함께 실행되도록 호스트 프로그램 언어로 만든 프로그램에 삽인된 SQL이다

 

내장 SQL의 특징

 

- 호스트 언어에서 실행문이 나타날 수 있는 곳이면 프로그램의 어느 곳에서나 사용할 수 있다
- 내장 SQL 프로그램은 컴파일보다 우선하는 전처리기에 의해 처리된다
- 호스트 변수와 데이터베이스 필드의 이름은 같아도 된다
- 내장 SQL문에 사용된 호스트 변수의 데이터 타입은 이에 대응하는 데이터베이스 필드의 SQL 데이터 타입과 일치하여야한다

 

7) 뷰(VIEW)

 

뷰의 개요
: 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 이름을 가지는 가상 테이블이다

 

뷰의 특징

 

- 가상 테이블이기 때문에 물리적으로 구현되어 있지 않다
- 필요한 데이터만 뷰로 정의해서 처리할 수 있기 때문에 관리가 용이하고 명령문이 간단해진다
- 정의된 뷰는 다른 뷰의 정의에 기초가 될 수 있다
- 뷰를 삭제하면 그 뷰를 기초로 정의된 다른 뷰도 자동으로 삭제된다

 

뷰의 장점

 

- 논리적 데이터 독립성을 제공한다
- 여러 사용자의 상이한 요구를 지원해 준다
- 사용자의 데이터 관리를 간단하게 해준다
- 접근 제어를 통한 자동 보안이 제공된다

 

뷰의 단점

 

- 독릭전인 인덱스를 가질 수 없다
- ALTER VIEW문을 사용할 수 없다 즉, 뷰의 정의를 변경할 수 없다
- 삽입, 갱신, 삭제 연산에는 제약이 따른다

 

뷰 삭제
: 뷰는 ALTER문을 사용하여 변경할 수 없으므로 필효한 경우는 삭제(DROP)한 후 재생성한다

 

8) 시스템 카탈로그(System Catalog)

 

시스템 카탈로그의 의미
: 시스템 자신이 필요로 하는 여러 가지 개체에 관한 정보를 포함한 시스템 데이터베이스이다 자료 사전이라고도 한다

 

시스템 카탈로그의 특징

 

- 일반 이용자도 SQL을 이용하여 내용을 검색해 볼 수 있다
- DBMS가 스스로 생성하고 유지하는 데이터베이스 내의 특별한 테이블의 집합체이다

 

4. 자료 구조의 기본서

 

1) 자료 구조의 개념

 

자료 구조의 분류

- 선형 구조 : 스택(Stack), 큐(Queue), 데크(Deque), 리스트(배열리스트,연결 리스트)
- 비선형 구조 : 트리(Tree), 그래프(Graph)

 

2) 스택(Stack)

 

스택의 개념
: 리스트의 한쪽 끝으로만 자료의 삽입, 삭제 작업이 이루어지는 자료 구조이다

 

스택의 응용 분야

 

- 부 프로그램 호줄 시 복귀주소를 저장할 때
- 함수 호출의 순서 제어
- 인터럽트가 발생하여 복귀주소를 저장할 때
- 후위 표기법으로 표현된 수식을 연산할때
- 0 주소지정방식 명령어의 자료 저장소
- 재귀 프로그램의 순서 제어
- 컴파일러를 이용한 언어 번역시

 

3) 큐(Queue)와 데크(Deque)

 

큐의 개념
: 선형 리스트의 한쪽에서는 삽입 작업이 이루어지고 다른 한쪽에서는 삭제 작업이 이루지도록 구성한 자료 구조이다

 

큐의 응용 분야

 

- 운영체제의 작업 스케줄링에 사용한다

 

데크의 개념

: 스택과 큐의 장점만 따서 구성한 것으로 삽입과 삭제가 리스트의 양쪽 끝에서 모두 발생할 수 있는 자료 구조이다

 

4) 트리(Tree)

 

트리의 개념
: 트리는 정점(노드)와 선분(가지)을 이용하여 사이클을 이루지 않도록 구성한 Graph의 특수한 형태이다

 

트린 관련 용어

 

- 근 노드(Root Node) : 트리의 맨 위에 있는 노드
- 디그리(Degree, 차수) : 가지의 수
- 단말 노드(Terminal Node) : Degree가 0인 노드
- 부모 노드(Parent Node) : 이전 레벨의 노드
- 형제 노드(Brother Node) : 동일한 부모를 갖는 노드
- 트리의 Degree(디그리) : 노드들의 디그리 중에서 가장 많은수

 

5) 이진 트리

 

이진 트리
: 차수가 2이하인 노드들로 구성된 트리 즉, 자식이 둘 이하인 노드들로만 구성된 트리를 말한다

 

6) 이진 트리의 운행법(Traversal)

 

트리의 운행법

 

   ⓐ
  /  |
ⓑ  ⓒ

 

- Preorder 운행 : Root -> Left -> Right 순으로 운행한다(위 트리 예시 : a,b,c)
- Inorder 운행 : Left -> Root -> Right 순으로 운행한다(위 트리 예시 : b,a,c)
- Postorder 운행 : Left -> Right -> Root 순으로 운행한다(위 트리 예시 : b,c,a)

 

수식의 표기법

 

   +
  /  |
ⓐ  ⓑ

 

- 전위 표기법(PreFix) : 연산자 -> Left -> Right (위 트리 예시 : +ab)
- 중위 표기법(InFix) : Left -> 연산자 -> Right (위 트리 예시 : a+b)
- 후위 표기법(PostFix) : Left -> Right -> 연산자 (위 트리 예시 : ab+)

 

*(다른 표기법으로 변환하는법 이해하기)

 

7) 그래프(Graph)

 

그래프 정의

 

- G는 정점 V(Vertex)와 간선 E(Edge)의 두 집합으로 이루어진다
- 간선의 방향성 유뮤에 따라 방향 그래프와 무방향 그래프로 구분된다
- 통신망, 교통망, 유리화학 구조식, 무향선분 해법 등에 응용된다

 

*(인접행렬(Adjacency matrix)을 이용한 그래의 표현 방법)

 

8) 정렬(Sort)의 개요

 

정렬
: 정렬은 파일을 구성하는 각 레코드를 특정 키 항목을 기준으로 오름차순(Ascending) 또는 내림차순(Descending)으로 재배열하는 작업을 말한다

 

정렬 방식

 

- 내부 정렬 : 히프 정렬, 삽입 정령, 쉘 정렬, 버블 정렬, 선택 정렬, 퀵 정열, 2-Way Merge Sort, 기수정렬
- 외부 정렬 : 밸런스 병합 정렬, 캐스케이드 병합 정렬, 폴리파즈 병합 정렬, 오실레이팅 병합 정렬

 

*(내부 정렬의 종류와 정렬하는 법 익히기)

 

정렬 알고리즘 선택 시 고려 사항

 

- 데이터의 양
- 초기 데이터의 배열 상태
- 키 값들의 분포 상태
- 소요공간 및 작업시간
- 사용 컴퓨터 시스템 특성

 

9) 검색(Search)

 

검색

: 컴퓨터를 이용해서 기억공간에 보관중인 특정 레코드를 찾아내는 작업이다

 

제어 검색(Control Search)
:반드시 순서화된 파일이어야 검색할 수 있다

- 이분 검색(Binary Search)
- 피보나치 검색(Fibonacci Search)
- 보간 검색(Interpolation Search)
- 블록 검색(Block Search)
- 이진 트리 검색(Binary Tree Search)

 

10) 검색-해싱(Hashing)

 

해싱
: DAM(직접 접근) 파일을 구성할 때 사용된다

 

해시 테이블(Hash Table, 해시표)
: 레코드를 한 개 이상 보관할 수 있는 Bucket들로 구성된 기억공간으로 주기억 장치나 보조기억장치에 저장한다

 

- 버킷(Bucket) : 하나의 주소를 갖는 파일의 한 구역을 의미한다
- 슬롯(Slot) : 한 개의 레코드를 저장할 수 있는 공간으로 n개의 슬롯이 모여 하나의 버킷을 형성한다
- 충돌 현상(Collision) : 서로 다른 두 개 이상의 레코드가 같은 주소를 갖는 현상이다
- Synonym : 충돌로 인해 같은 Home Address를 갖는 레코드들의 집합이다
- Overflow : 계산된 Home Address의 Bucket 내에 저장할 기억공간이 없는 상태이다

 

해싱함수(Hashing Function)

 

- 제산법
- 제곱법
- 폴딩법
- 기수(Radix) 변환법
- 대수적 코딩법
- 계수 분석법(숫자 분석법)
- 무작위법

 

Overflow 해결방법

 

- 개방 주소법(Open Adressing)
- 폐쇄 주소법(Close Addressing)
- 재해싱(Rehashing)

 

11) 인덱스(Index)의 구조

 

인덱스의 개념
: 데이터 레코드를 빠르게 접근하기 위해서 구성하는 것이다

 

12) 파일 편성

 

순차 파일(Sequential File) = 순서 파일
: 입력되는 데이터들을 논리적인 순서에 따라 물리적 연속 공간에 순차적으로 기록하는 방식이다

 

순차 파일의 장점

 

- 기록밀도가 높아 기억공간을 효율적으로 사용할 수 있다
- 레코드가 키 순서대로 편성되어 취급이 용이하다
- 매체 변환이 쉬워 어떠한 매체에도 적용할 수 있다

 

순차 파일의 단점

 

- 파일에 레코드를 삽입하거나 삭제하는 경우 파일 재구성을 위해 전체를 복사해야 하므로 시간이 많이 소요된다
- 데이터 검색 시 처음부터 순차적으로 검색하기 때문에 검색 효율이 낮고, 시간 및 응답시간이 느리다

 

색인 순차 파일(Indexed Sequential File)
: 순차 처리와 랜덤 처리가 모두 가능하도록 레코드들을 키 값 순으로 정렬시켜 기록하고 레코드의 키 항목만을 모은 색인을 구성하여 편성하는 방식이다

 

색인 순차 파일의 구성

 

- 기본 구역(Prime Area)
- 색인 구역(Index Area) : 트랙 색인 구역, 실린더 색인 구역, 마스터 색인 구역으로 나눠져있다
- 오버플로 구역(Overflow Area)

 

색인 순차 파일의 장점

 

- 순차 처리와 랜덤 처리가 모두 가능하므로 목적에 따라 융통성 있게 처리할 수 있다
- 효율적인 검색이 가능하고 레코드의 삽입, 삭제, 갱신이 용이하다
- 레코드를 추가 및 삽입하는 경우, 파일 전체를 복사할 필요가 없다

 

색인 순차 파일의 단점

 

- 색인 구역과 오버플로 구역을 구성하기 위한 추가 기억공간이 필요하다
- 파일 사용중 오버플로 레코드가 많아지면 파일을 재편성해야한다
- 파일이 정렬되어 있어야 하므로 추가, 삭제가 많으면 효율이 떨어진다

 

직접 파일(Direct File)
: 해시 함수를 이용하여 이 키에 대한 보조기억장치의 물리적 상대 레코드 주소를 계산한 후 해당하는 주소에 레코드를 저장한다

 

'자격증 공부!' 카테고리의 다른 글

정보처리 산업기사(전자계산기 구조)  (0) 2020.08.29

+ Recent posts