자료구조 : 자료를 기억장치에 저장하는 방법, 저장된 그룹 내에 존재하는 자료 간의 관계, 처리 방법
< 선형 구조 >
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이 효율적으로 수행되도록 최적의 경로를 찾아주는 모듈
'자격증 > 정보처리기사 - 필기' 카테고리의 다른 글
소프트웨어 개발 - 제품 SW 패키징 (0) | 2020.02.05 |
---|---|
소프트웨어 개발 - 통합 구현 (0) | 2020.02.04 |
소프트웨어 설계 - 인터페이스 설계 (0) | 2020.01.30 |
소프트웨어 설계 - 애플리케이션 설계 (0) | 2020.01.24 |
소프트웨어 설계 - 화면 설계 (0) | 2020.01.21 |