자료구조
자료 구조의 정의
- 프로그램에서 사용하기 위한 자료를 기억장치의 공간 내에 저장하는 방법과 자료 간의 관계, 처리 방법 등을 저장공간의 효율성 및 실행 간의 신속성을 높이기 위한 연구 분석하는 것
자료 구조의 분류
- 배열
-> 동일한 자료형의 데이터들이 같은 크기로 나열되어 순서를 갖고 있는 집합
-> 첨자를 이용하여 데이터에 접근
-> 첨자의 개수에 따라 n차원 배열이라 부름
- 선형 리스트
-> 일정한 순서에 의해 나열된 자료 구조
-> 연속 리스트
* 배열을 이용한 선형 리스트
* 중간에 데이터를 삽입하기 위해 연속된 빈 공간이 있어야 하며 삽입, 삭제 시 자료의 이동 필요
-> 연결 리스트
* 자료 항목의 순서에 따라 노드의 포인터 부분을 이용하여 서로 연결시킨 자료 구조
* 연결을 위한 포인터를 찾는 시간이 필요해 접근 속도가 느림
* 노드의 삽입 삭제 작업이 용이
* 노드 부분 때문에 연속 리스트에 비해 기억 공간의 효율이 좋지 않음
- 스택
-> 리스트의 한쪽으로 자료의 삽입, 삭제가 이루어짐
-> LIFO(Last In First Out)의 구조를 가지고 있음
-> 오버플로우(overflow) : 기억 공간이 모두 차있는 상태에서 데이터를 삽입하면 일어나는 현상
-> 언더플로우(underflow) : 기억 공간이 비어있는 상태에서 데이터를 삭제하면 일어나는 현상
-> Top : 스택에 가장 마지막으로 삽입된 자료의 위치
-> Bottom : 스택의 가장 바닥
- 큐
-> 리스트의 한쪽에서는 삽입 다른 한쪽에서는 삭제가 이루어짐
-> FIFO(First In First Out)의 구조를 가지고 있음
-> F(Front) : 먼저 삽입된 자료의 기억 공간을 가르키는 포인터
-> R(Rear) : 마지막에 삽입된 자료의 기억 공간을 가르키는 포인터
- 트리
-> 노드와 가지를 이용하여 사이클이 없이 구성한 그래프의 특수 형태
-> 디그리 : 노드에서 뻗어나온 가지의 개수
-> 단말노드 / 잎 노드 : 자식이 없는 노드
-> 트리의 디그리 : 노드들의 디그리 중 가장 많은 수
데이터저장소 / 데이터베이스 / DBMS
데이터저장소의 개요
- 소프트웨어 개발 과정에서 다루어야 할 데이터들을 논리적인 구조로 조직화하거나 물리적인 공간에 구현한 것
- 논리 데이터저장소는 데이터 및 데이터 간의 연간성, 제약 조건을 식별하여 논리적인 구조로 조직화한 것
- 물리 데이터저장소는 논리 데이터저장소에 저장된 데이터와 구조들을 하드웨어적인 저장장치에 저장한 것
데이터베이스의 정의
- 특정 조직의 업무를 수행하는데 필요한 데이터들의 모임
- 통합된 데이터 : 자료의 중복을 최소화
- 저장된 데이터 : 컴퓨터가 접근할 수 있는 저장 매체에 저장
- 운영 데이터 : 조직의 고유한 업무를 수행하는데 필요
- 공용 데이터 : 여러 시스템이 공동으로 소유하고 유지함
DBMS(DataBase Management System)
- 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 데이터베이스를 관리하는 소프트웨어
- 기존의 파일 시스템이 가지는 데이터의 종속성과 종복성 문제를 해결하기 위해 제안된 시스템
- DBMS의 기능
-> 정의 기능 : 데이터베이스에 저장될 데이터의 타입과 구조에 대해 명시하는 기능
-> 조작 기능 : 데이터를 검색, 갱신, 삽입, 삭제 등 처리하기 위해 사용자와 데이터베이스 간 인터페이스 수단을 제공하는 기능
-> 제어 기능
* 데이터의 무결성이 유지되도록 제어
* 사용자에게 허가된 데이터만 접근하도록 보안을 유지하고 권한을 검사
* 여러 사용자가 동시에 접근하여 데이터를 처리할 때 정확성을 유지하도록 병행 제어
DBMS의 장단점
- 장점
-> 데이터 독립성, 일관성, 무결성 유지
-> 보안 유지
-> 데이터 실시간 처리, 통합 관리, 표준화 가능
- 단점
-> 전문가 부족
-> 전산화 비용 증가
-> 파일의 백업과 회복이 어려움
-> 시스템이 복잡함
데이터 입출력
데이터 입출력의 개요
- 소프트웨어의 기능을 구현하기 위해 데이터베이스에 데이터를 입력, 출력하는 작업
SQL
- 국제 표준 데이터베이스 언어
- 데이터 정의어, 조작어, 제어어로 구분됨
- 2020 정보처리기사 필기 - 3.3 SQL 응용(1)
- 2020 정보처리기사 필기 - 3.3 SQL 응용(2)
데이터 접속(Data Mapping)
- 프로그래밍 코드와 데이터베이스의 데이터를 연결하는 것
- 2020 정보처리기사 필기 - 3.4 SQL 활용(2)
트랜잭션
- 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 수행돼야 할 일련의 연산
- TCL(Transaction Control Language) : 트랜잭션을 제어하기 위해 사용되는 명령어
-> COMMIT : 트랜잭션 처리가 비정상적으로 종료되어 트랜잭션이 수행한 변경 내용을 데이터베이스에 반영
-> ROLLBACK : 트랜잭션 처리가 비정상적으로 종료되어 데이터베이스의 일관성이 깨졌을 때 트랜잭션이 행한 모든 변경 작업을 취소하고 이전 상태로 되돌림
-> SAVEPOINT(CHECKPOINT) : 트랜잭션 내에 ROLLBACK 할 위치인 저장점을 지정
절차형 SQL
절차형 SQL의 개요
- 프로그래밍 언어와 같이 연속적인 실행이나 분기, 반복 등의 제어가 가능한 SQL
- 단일 SQL문장으로 처리가 어려운 연속적인 작업을 처리하는데 적합
- BEGIN ~ END 형식의 블록 구조로 되어 있어 기능별 모듈화가 가능
- 2020 정보처리기사 필기 - 3.4 SQL 활용(1)
필기 정리
'2020(개정) 이후 정보처리기사 > 2과목 : 소프트웨어 개발' 카테고리의 다른 글
2020 정보처리기사 필기 - 2.4 애플리케이션 테스트 관리(2) (0) | 2020.04.15 |
---|---|
2020 정보처리기사 필기 - 2.4 애플리케이션 테스트 관리(1) (0) | 2020.04.15 |
2020 정보처리기사 필기 - 2.3 제품 소프트웨어 패키징(2) (0) | 2020.04.15 |
2020 정보처리기사 필기 - 2.3 제품 소프트웨어 패키징(1) (0) | 2020.04.14 |
2020 정보처리기사 필기 - 2.2 통합 구현 (0) | 2020.04.14 |