✔자료구조
-자료구조에 따라 프로그램 실행시간이 달라진다
-자료의 표현과 그것과 관련된 연산이다
-어떠한 자료 구조에서도 필요한 모든 연산들을 처리할 수 있다
-프로그램을 작성할 대 고려사항은 저장공간의 효율성과 실행시간의 신속성이다
자료구조의 분류
순서가 있는 선형구조와 순서가 없는 비선영구조로 나뉜다
선형구조: 배열, 리스트(연속리스트, 연결리스트), 스택, 큐
비선형구조: 트리, 그래프
배열
-같은 타입의 데이터가 있는 정적의 자료구조
-정적=변화가 없다
-배열의 길이 수정이 안된다 -> 메모리의 낭비
-반복적 데이터처리
연속리스트(Contiguous List)
-배열에서 편집기능이 추가된것
-기억공간 밀도 효율은 1 좋다
-배열과 같이 연속되는 기억장소에 저장되는 자료구조
-연속리스트는 중간에 데이터를 삽입하기 위해 연속된 빈 공간이 있어야 하며, 삽입 삭제 시 자료의 이동이 필요하다
-데이터 넣으면 뒤로 하나 밀림 -> 수정보다는 조회가 적합
✨✨연결리스트(Linked list)
-수정이 용이, 삭제 용이, 삽입 용이
-자료를 연속적으로 배열시키지 않는다
-임의의 공간에 기억시킨다
-노드의 포인터 부분을 이용하여 서로 연결
-노드:연결
-연결리스트는 연결을 위한 포인터(링크)가 필요하기 때문에 순차 리스트에 비해 기억공간의 이용 효율이 좋지 않다
-중간노드 끊기면 다음노드 찾기 힘듬
스택
-리스트의 한쪽 끝으로만 자료의 삽입, 삭제가 이루어진다
-노드의 입력과 출력이 한쪽으로만 이루어지는 구조
-모든 데이터가 꽉채워져있을때 Overflow, 더이상 삭제 할 데이터 없을때 Underflow
노드: 연결
큐(FIFO)
-리스트의 한쪽에서는 삽입 작업이 이루어지고 다른 한쪽에서는 삭제 작업이 이루어진다
-선입 선출(먼저들어간게 제일 먼저 나간다)
그래프
트리는 사이클이 없는 그래프이다
트리
-트리는 하나의 기억공간을 노드라고 하며, 노드와 노드를 연결하는 선을 링크라고 한다
노드: 동그라미라 생각하면 된다.
근노드(Root Node): 트리의 맨 위에 있는 노드
디그리(Degree 차수): 각 노드에서 뻗어 나온 가지의 수
터미널노드: 가장아래에있음
정렬
-✨삽입정렬: 가장 간단한 정렬 방식, 순서화 된 파일에 새로운 하나의 레코드를 순서에 맞게 삽입시켜 정렬한다(여러회전을 통해 소팅)
> 두번째 키와 첫번째 키 비교
> 찾으면 다음회전
-쉘정렬: 삽입 정렬을 확장 한 개념
-✨선택정렬: n개의 레코드 중에서 최소값을 찾아 첫번째 레코드 위치에 놓고, 나머지(n-1)개중에서 다시 최솟값을 찾아 두번째 레코드 위치에 놓는 방식)
> 첫번쨰 키에서 계속해서 첫번째 키보다 작은 수를 찾음
-✨버블정렬: 인접한 두개의 레코드 키값을 비교하여 그 키에 따라 레코드 위치 교환
-퀵정렬: 레코드의 많은 자료이동을 없애고 하나의 파일을 부분적으로 나눈다
-힙정렬: 전이트리를 이용한방식 nlog2n -> 이거랑 2-way꺼랑만 복잡도 가 다르다
-2-way 합병 정렬 : 이미 정렬되어 있는 두개의 파일을 한개의 파일로 병합nlog2n
✔데이터베이스의 개요
데이터 저장소
-소프트웨어 개발 과정에서 다루어야 할 데이터들을 논리적인 구조로 조직화 하거나, 물리적인 공간에 구축한 것을 의미한다
-논리데이터 저장소, 물리데이터 저장소로 구분
-논리데이터 저장소: 데이터 및 데이터 간의 연관성, 제약조건을 식별하여 논리적인 구조로 조직화 한 것을 의미한다
-물리데이터 저장소: 논리 데이터저장소에 저장된 데이터와 구조들을 소프트웨어가 운용될 하드웨어적인 저장장치에 저장하는 것
-논리데이터 저장소를 거쳐 물리 데이터 저장소를 구축하는 과정은 데이터베이스를 구축하는 과정과 동일
->상이하다->는 오답
✨✨데이터 베이스
통합된 데이터(Integrate Data): 자료의 중복을 배제한 데이터의 모임
저장된 데이터(Stored Data): 컴퓨터가 접근할 수 있는 저장 매체에 저장된 자료이다
운영 데이터(Operational Data): 조직의 고유한 업무를 수행하는데 존재 가치가 확실하고 없어서는 안될 반드 시 필요한 자료
공용 데이터(Shared Data): 여러 응용 시스템들이 공동으로 소유하고 유지하는 자료이다
DBMS 데이터 베이스 관리시스템
사용자와 데이터 베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 데이터베이스를 관리하는 소프트웨어
기존의 파일 시스템이 가지는 데이터의 종속성과 종복성 문제를 해결하기 위해 제안된 시스템
DBMS기능
-> 정의기능: 데이터베이스에 저장될 데이터의 타입과 구조에 대해 명시하는 기능
-> 조작기능: 데이터를 검색, 갱신, 삽입, 삭제 등 처리하기 위해 사용자와 데이터베이스 간 인터페이스 수단을 제공하는 기능
-> 제어기능:
-데이터의 무결성이 유지되도록 제어
-사용자에게 허가된 데이터만 접근하도록 보안을 유지하고 권한을 검사
-여러 사용자가 동시에 접근하여 데이터를 처리할 때 정확성을 유지하도록 병행 제어
DBMS의 장단점
-장점
-> 데이터 독립성, 일관성, 무결성 유지
-> 보안 유지
-> 데이터 실시간 처리, 통합 관리, 표준화 가능
-단점
-> 전문가 부족
-> 전산화 비용 증가
-> 파일의 백업과 회복이 어려움
-> 시스템이 복잡함
-> 대용량 디스크로의 집중적인 과정으로 과부화 발생
스키마
데이터 베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터(Meta)의 집합이다
- 스키마는 데이터베이스를 구성하는 데이터 개체, 속성, 관계 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의한다
외부스키마: 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조 정의
개념스키마: 데이터 베이스의 전체적인 논리적 구조
내부스키마: 물리적 저장장치의 입장에서 본 데이터 베이스 구조, 물리적 순소 나타냄
✔데이터 입 출력
데이터 입출력은 소프트웨어의 기능 구현을 위해 데이터베이스에 데이터를 입력하거나 데이터베이스의 데이터를 출력하는 작업을 의미한다
SQL
정의어 DDL : 테이블, 제약사항, 도메인 등을 정의, 변경, 삭제
조작어 DML: 저장된 데이터를 실질적으로 처리
제어어 DCL: 데이터의 보안, 무결성, 회복, 병행수행 제어
데이터 접속(DATA MAPPING)
데이터 접속은 소프트웨어의 기능 구현을 위해 프로그래밍 코드와 데이터베이스의 데이터를 연결(Mapping) 하는 것을 의미
-SQL Mapping: 프로그래밍 코드 내에 SQL 을 직접 입력하여 DBMS 의 데이터에 접속하는 기술, JDBC, ODBC, Mybatis
-ORM(Object-Relational Mapping) : 객체지향 프로그래밍의 객체(Object)와 관계형 데이터 베이스의 데이터를 연결하는 기술로, 관련 프레임워크에는 JPA, Hibernate, Django, 포스트그리 등이 있다
트랜잭션
- 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위
- 여러 종류의 데이터를 출력하는 과정 => 트랜잭션
- 트랜잭션을 제어하기위한 멍령어 TCL
- TCL 종류에는 COMMIT , ROLLBACK, SAVEPOINT가 있다
COMMIT : 트랜잭션 처리가 정상적으로 종료되어 트랜잭션이 수행한 변경 내용을 데이터베이스에 반영하는 명령어
ROLLBACK : 하나의 트랜잭션 처리가 비정상적으로 종료되어 ,
데이터 베이스의 일관성이 깨졌을 때 트랜잭션에 대한 모든 변경 작업이 취소되어 이전 상태로 되돌리는 연산
SAVEPOINT : 트랜잭션 내에 롤백할 위치인 저장점을 지정하는 명령어(트랜잭션이 방대할경우)
=> 트랜잭션이 방대할경우 중간에 세이브포인트 생성해서 롤백 포인트를 만들어줌
✔절차형 SQL
C, JAVA 등의 프로그래밍 언어와 같이 연속적인 실행이나 분기, 반복등의 제어가 가능한 SQL을 말한다
-블록구조이기 때문에 모듈화 가능
-DBMS에서 직접 실행, 입출력 패킷이 적은편
프로시저: 특정기능을 수행하는 일종의 트랜잭션 언어로 호출을 통해 실행되어 미리 저장해 놓은 SQL작업을 수행한다
=>리턴값이 없어도 된다
=> 프로시저와 함수(사용자 정의 함수)의 차이 ~ 리턴값 반환
트리거: 데이터베이스 시스템에서 데이터의 입력, 갱신, 삭제등의 이벤트가 발생할때마다 작업이 자동으로 진행
사용자 정의 함수: 프로시저와 같이 연속적 처리, 리턴사용
SHOW 명령을 통해서 오류 내용을 확인하고 문제를 수정(디버깅)할 수 있다
'정보처리기사' 카테고리의 다른 글
3장// 제품 소프트웨어 패키징 - 배포 (0) | 2021.08.13 |
---|---|
2장// 통합구현 -실무에 유용 (0) | 2021.08.13 |
응용 SW 기초 기술 활용(2) (0) | 2021.08.12 |
응용 SW 기초 기술 활용(2) (0) | 2021.08.08 |
응용 SW 기초 기술 활용(1) (0) | 2021.08.08 |