본문 바로가기

자격증/정보처리기사 - 필기

소프트웨어 개발 - 데이터 입/출력 구현

728x90

자료구조 : 자료를 기억장치에 저장하는 방법, 저장된 그룹 내에 존재하는 자료 간의 관계, 처리 방법

< 선형 구조 >

1. 배열

● 정적 자료 구조, 기억장소 추가 어려움, 데이터 삭제 시 메모리 낭비 발생  ● 반복적인 데이터 처리 작업

2. 선형 리스트

● 연속 리스트

-> 배열 이용

-> 기억장소 이용 효율 가장 좋음

-> 데이터 삽입 시 연속된 빈 공간 필요, 삽입/삭제 시 자료의 이동 필요

● 연결 리스트

-> 포인터 이용

-> 노드의 삽입/삭제 용이

-> 순차 리스트에 비해 기억 공간의 이용 효율이 좋지 않음

-> 접근 속도 느림

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

3. 스택

● 리스트의 한쪽 끝으로만 자료의 삽입/삭제 작업이 이루어지는 자료구조

● LIFO  ● 오버플로/언더플로 발생

4. 큐

● 리스트의 한쪽에서는 삽입이, 다른 한쪽에서는 삭제 작업이 이루어짐  ● FIFO

< 비선형 구조 >

1. 트리

● 노드  ● 링크 : 노드 간 연결

● 디그리 : 각 노드에서 뻗어 나온 가지의 수

● 단말노드( 터미널 노드 ) : 자식이 하나도 없는 노드

● 트리의 디그리 : 디그리 중에서 가장 많은 수

 

데이터 저장소 : 데이터들을 논리적인 구조로 조직화하거나, 물리적인 공간에 구축한 것

● 논리 데이터 저장소 : 데이터 간 연관성, 제약조건 식별하여 논리적인 구조로 조직화 한 것

● 물리 데이터 저장소 : 하드웨어적인 저장장치에 저장한 것

 

DB

● 통합된 데이터 : 중복 배제

● 저장된 데이터 : 저장 매체에 저장된 자료

● 운영 데이터 : 없어서 안될 반드시 필요한 자료

● 공용 데이터 : 여러 응용 시스템들이 공동으로 소유

 

DBMS : 사용자의 요구에 따라 정보 생성, DB 관리

● 데이터의 종속성과 중복성의 문제 해결

-> 종속성 : 응용 프로그램과 데이터 간 상호 의존 관계

● 기능

-> 정의 기능 : 데이터의 형과 구조, 이용 방식, 제약 조건 명시

-> 조작 기능 : 사용자와 DB 사이의 인터페이스 수단 제공

-> 제어 기능 : 데이터 무결성 유지, 보안 유지, 권한 검사, 병행 제어

 

데이터의 독립성

-> 논리적 독립성 : 응용 프로그램과 DB를 독립시킴

-> 물리적 독립성 : 응용 프로그램과 보조 기억장치 같은 물리적 장치 독립시킴

 

SQL

● 관계대수와 관계해석을 기초로 한 혼합 데이터 언어

-> DDL( 데이터 정의어 ) : 스키마, 도메인, 테이블, 뷰, 인덱스를 정의/변경/삭제

-> DML( 데이터 조작어 ) : 저장된 데이터를 실질적으로 처리

-> DCL( 데이터 제어어 ) : 데이터의 보안, 무결성, 회복, 병행 수행 제어 정의

 

데이터 접속

● SQL Mapping : 프로그래밍 코드 내에 SQL을 직접 입력하여 DBMS의 데이터에 접속

● ORM : 객체지향 프로그래밍의 객체와 관계형 DB의 데이터를 연결

 

트랜잭션 : DB 상태 변환

● TCL : 트랜잭션을 제어하기 위해 사용하는 명령어

-> COMMIT : 트랜잭션이 정상 종료되어 트랜잭션이 수행한 변경 내용을 DB에 반영

-> ROLLBACK : 트랜잭션이 비정상 종료되어 DB의 일관성이 깨졌을 때 모든 변경 작업을 취소하고 이전 상태로 돌림

-> SAVEPOINT( CHECKPOINT ) : ROLLBACK 할 위치 지정

 

절차형 SQL : 프로그래밍 언어와 같이 연속적인 실행이나 분기, 반복 등의 제어가 가능한 SQL

-> 프로시저 : 특정 기능 수행, 미리 저장해 놓은 SQL 작업 수행

-> 트리거 : 데이터의 입력, 갱신, 삭제 등의 이벤트 발생 시 관련 작업 자동 수행

-> 사용자 정의 함수 : 종료 시 예약어 Return을 사용하여 처리 결과를 단일값으로 반환

 

절차형 SQL의 테스트와 디버깅

● 테스트 전 생성을 통해 구문 오류나 참조 오류 확인

● SHOW 명령어를 통해 내용을 확인하고 문제 수정

 

쿼리 성능 최적화 : 성능 향상을 위해 SQL 코드를 최적화

● 최적화 전 성능 측정 도구인 APM을 사용하여 최적화 할 쿼리 선정

● 최적화 할 쿼리에 대해 옵티마이저가 수립한 실행 계획을 검토하고 SQL 코드와 인덱스 재구성

-> 옵티마이저 : DBMS에 내장되어 작성된 SQL이 효율적으로 수행되도록 최적의 경로를 찾아주는 모듈