[정리] 정보처리기사 실기 - 4장 : 데이터 입출력 구현

2022. 10. 5. 09:42·📘 certificate/📘⭕️ 정보처리기사

4장 : 데이터 입출력 구현(2과목)


0. 자료 구조의 분류 ★★★


1. 배열 (Array) 

  • 정적 자료 구조이다. 
  • 삽입, 삭제 시 번거롭다.
  • 삭제 시 빈 공간으로 인해 메모리 낭비가 발생한다.  
  • Index를 이용해 접근한다. 
  • 반복적인 데이터 처리 작업에 용이하다. 
  • 처리가 간편하다. 

2. 선형 리스트 (Linear List)

  • 연속 리스트 (Contiguous List)
    • 배열과 비슷하다. 
    • 연속적으로 배정을 받는다. 
    • 밀도가 1이다. 
    • 삽입, 삭제 시 자료의 이동이 필요하다. 
  • 연결 리스트 (Linked List)
    • 연속적인 배정이 아닌, 임의의 공간에 배정받는다. 
    • 포인터로 서로 연결되어 있다. 
    • 삽입과 삭제가 용이하다. 
    • 순차 리스트에 비해, 이용 효율이 좋지 않다. 
    • 검색이 느리다. 
    • 끊어지면 다음 노드를 찾기 어렵다. 


3. 스택(Stack)

  • 리스트의 한쪽 끝으로만 자료의 삽입, 삭제 작업이 이루어짐
  • 가장 나중에 삽입된 자료가 가장 먼저 삭제되는 후입선출(LIFO : Last In First Out)
  • 스택의 모든 공간이 꽉 채워져 있는 상태에서 데이터가 삽입되면 오버플로우(Overflow)가 발생
  • 더 이상 삭제할 데이터가 없는 상태에서 데이터를 삭제하면 언더플로우(Underflow)가 발생

 

  •  Stack의 응용
  • 부 프로그램 호출 시 복귀주소를 저장할 때
  • 함수 호출의 순서 제어
  • 인터럽트 발생 시 복귀주소를 저장할 때
  • 0 주소지정방식 명령어의 자료 저장소
  • 재귀 프로그램의 순서 제어 등


4. 큐(Queue)

  • 선형 리스트의 한쪽에서는 삽입, 다른 한쪽에서는 삭제 작업이 이루어지도록 구성한 자료구조
  • 가장 먼저 삽입된 자료가 가장 먼저 삭제되는 선입선출(FIFO : First In First Out)

 

  • Queue의 응용
  • 창구 업무나 택시 정거장처럼 서비스 순서를 기다리는 등의 대기 행렬의 처리에 사용
  • 운영체제의 작업 스케줄링에 사용


5. 데크(Deque)

  • 삽입과 삭제가 리스트의 양쪽 끝에서 모두 발생할 수 있는 자료 구조
  • 스택과 큐의 장점만 따서 구성한 것
  • 입력 제한 데크 : Scroll, 출력 제한 데크 : Shelf

6. 트리 (Tree)

 

 

  • 노드(Node)의 수 : 9개
  • 차수 (Degree) : 각 노드에서 뻗어 나온 가지의 수
    • 트리의 차수 : 2 (이유 : root 노드인 2번 노드의 뻗어 나가는 가지가 2개이므로)
    • 노드의 차수 : 2 (이유 : 특정 노드를 명시하지 않으면, root 노드를 의미)
  • 트리의 레벨 (Level=depth) : 4

7. 데이터저장소 ★★★

  • 데이터들을 논리적인 구조로 조직화하거나, 물리적인 공간에 구축한 것을 의미한다.
  • 논리 데이터저장소 : 논리적인 구조로 조직화 한 것
  • 물리 데이터저장소 : 물리적 특성을 고려하여, 하드웨어적인 저장 장치에 저장한 것 

8. 데이터베이스 ★★★

  • 상호 연관이 있는 데이터들의 모임
데이터베이스는,  통합된 데이터이다.
(=Integrated Data)
즉, 중복을 배제한 데이터의 모임이다. 
저장된 데이터이다.
(=Stored Data)
즉, 저장 매체에 저장된 자료이다. 
운영 데이터이다.
(=Operational Data)
즉, 반드시 필요한 자료이다. 
공용 데이터이다.
( =Shared Data)
즉, 공동으로 소유한 데이터이다. 

 

 

 

** 데이터베이스는, 통합된 데이터의 효율성의 증진을 위해, 최소의 중복과 통제된 중복을 허용한다. ★★★


9. DBMS (DataBase Management System, 데이터베이스 관리 시스템) ★★★

  • 종속성과 중복성을 배제하기 위해 제안된 시스템이다.
  • DBMS는 데이터베이스의 구성, 접근 방법, 유지 관리에 대한 모든 책임을 진다.
  • DBMS의 필수 기능
    • 정의 (Definition) : 데이터간의 관계를 명확하게 명세(또는 Mapping)하는 것 (type, 구조 등)
    • 조작 (Manipulation) : 갱신, 삽입, 삭제 작업이 정확하게 수행되게 끔 수단을 제공하는 것
    • 제어 (Control) : 무결성 유지, 보안 유지, 권한 검사, 병행 제어

 

 

** 종속성 <ㅡ> 독립성


10. 스키마

  • 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타 데이터
  • 개체, 속성, 관계 및 데이터 조작 시 데이터 값들이 갖는 제약조건 등에 관해 전반적으로 정의
외부 스키마 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는
데이터베이스의 논리적 구조를 정의
개념 스키마 데이터베이스의 전체적인 논리적 구조, 하나만 존재
내부 스키마 물리적 저장장치의 입장에서 본 데이터베이스 구조

11. 데이터 접속 (Data Mapping)

  • 객체와 데이터를 연결하는 것
  • 종류
    • SQL Mapping : SQL을 직접 입력하여 DBMS의 데이터에 접속
    • ORM (Object Relational Mapping) : 객체와 관계형 데이터베이스의 데이터를 연결

 


12. 트랜잭션 (Transaction) ★★★

  • 논리적 기능을 수행하기 위한 작업의 단위
  • 한꺼번에 모두 수행되어야 할 일련의 연산들
  • TCL (Transaction Control Language) : 트랜잭션을 제어하는데에 사용되는 명령어
  • TCL 종류
    • COMMIT : 정상적 종료
    • ROLLBACK : 비정상적 종료, 모든 변경 작업 취소, 이전 상태로 되돌림
    • SAVEPOINT : ROLLBACK 할 위치 저장, 복수 개 가능

13. SQL (Structed Query Language)

  • 관계대수와 관계해석을 기초로 한 혼합 데이터 언어
  • 데이터베이스를 조작하는데에 사용되는 명령어
  • 구분
    • 데이터 정의어 (DDL : Data Define Language) : 정의, 변경, 삭제 시 사용
    • 데이터 조작어 (DML : Data Manipulation Language) : 실질적인 처리 시 사용
    • 데이터 제어어 (DCL : Data Control Language) : 무결성, 회복, 병행 수행 제어 등 사용 

 

 

** SQL vs TCL

SQL TCL
데이터베이스의 데이터를 조작하는데에 사용하는 언어 트랜잭션을 제어하는데에 사용하는 명령어

14. 절차형 SQL

  • C, JAVA 언어 처럼, 연속적인 실행이나 분기, 반복 등의 제어가 가능한 SQL
  • 효율은 떨어진다.  
  • 연속적인 작업 처리에 적합하다. 
  • 저장 모듈을 생성할 수 있다. 
  • DBMS에서 직접 실행되기 때문에 입출력 패킷이 적은 편이다. 
  • 디버깅을 통해 적합성 여부를 검증한다.
  • 테스트 전에 오류 여부를 확인한다.
  • 특정 오류 및 경고 메시지가 상세히 출력되지 않으므로, SHOW 명령어를 통해 내용을 확인하고, 문제를 수정한다. 

15. 절차형 SQL의 종류

  • 프로시저 (Procedure)
    • 일종의 트랜잭션 언어
    • 미리 저장해 놓은 SQL 작업을 수행한다. 
  • 트리거 (Trigger)
    • 이벤트 발생 시 자동으로 수행된다. 
  • 사용자 정의 함수
    • 종료 시 return을 통해 처리 결과를 단일값으로 반환
저작자표시 비영리 변경금지 (새창열림)
'📘 certificate/📘⭕️ 정보처리기사' 카테고리의 다른 글
  • [정리] 정보처리기사 실기 - 6장 : 프로그래밍 언어 활용
  • [정리] 정보처리기사 실기 - 5장 : 프로그래밍 언어 활용 ★★★
  • [정리] 정보처리기사 실기 - 프로그래밍 언어 ver
  • [정리] 정보처리기사 실기 - 3장 : SQL 응용 ★★★
천재강쥐
천재강쥐
  • 천재강쥐
    디버거도 버거다
    천재강쥐
  • 전체
    오늘
    어제
    • Category (467)
      • 진짜 너무 궁금한데 이걸 나만 몰라...? (0)
      • 💾 Portfolio (2)
      • 🐤 CodingTest (28)
        • Java (20)
        • ᕕ(ꐦ°᷄д°᷅)ᕗ❌ (5)
      • 🚀 from error to study (142)
        • AI (1)
        • Cloud (2)
        • DB (12)
        • Front-End (16)
        • Github (14)
        • Java (39)
        • Mac (7)
        • Normal (29)
        • Server (22)
      • 📘 certificate (44)
        • 📘 리눅스마스터1급 (1)
        • 📘⭕️ 정보처리기사 (40)
        • 📘⭕️ SQLD (3)
      • 📗 self-study (234)
        • 📗 inflearn (35)
        • 📗 생활코딩 (8)
        • 📗 KH정보교육원 당산지원 (190)
      • 🎨 Scoop the others (0)
        • 📖 Peeking into other people.. (0)
        • 🇫🇷 (0)
        • 📘⭕️ 한국사능력검정시험 심화 (11)
        • 오블완 (4)
  • 인기 글

  • hELLO· Designed By정상우.v4.10.1
천재강쥐
[정리] 정보처리기사 실기 - 4장 : 데이터 입출력 구현
상단으로

티스토리툴바