아래 내용은 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 |
---|