협약에 의한 설계 외워두자
행위 다이어그램은 유스케이스도 포함하나보다.
배치는 구조 다이어그램이다.
( = : 정의 ), ( + : 구성 ), ( { } : 반복 ), ( [ | ] : 선택 ), ( () : 생략가능 ), ( ** : 주석 )
출처: https://hyun-am-coding.tistory.com/entry/Chapter-06-자료-사전 [현암 코딩]
terminator = 종료기
1. 동그라미 : 프로세스(Process) - 입력되는 데이터를 원하는 데이터로 변환하여 출력시키는 과정
항상입력되는 데이터가 있어야함.
2. 화살표 : 데이터흐름(Data Flow) - 구성요소들간의 인터페이스를 나타냄
프로세스사이를 연결하기도 하고, 데이터 저장소로부터의 흐름을 나타내기도함
3. 평행 직선 두개 : 데이터 저장소(Data Store) - 추후 억세스를 위한 데이터를 저장하는 수동적 객체
단순한 데이터의 저장을 나타냄
4. 네모 : 외부엔티티(External Entity) - 프로세스 처리 과정의 데이터 발생의 시작 및 종료를 나타냄
사람, 부서, 기능 등이 될 수 있음
1) 요구사항 검토
: 검토 담당자들이 수작업으로 분석
(1) 동료검토(Peer Review)
(2) 워크스루(Walk Through): 명세서를 미리 배포하여 사전 검토 > 짧은 검토 회의
(3) 인스팩션(Inspection): 명세서 작성자 제외한 다른 검토 전문가들이 명세서를 확인하면서 결함을 발견하는 형태
4) CASE(Computer Aided Software Engineering) 도구 활용
: CASE도구를 이용하여 대규모 개발 프로젝트에서 다양한 이해관계자들이 요구 사항 명세서를 검토, 요구사항 명세서 형상 관리 수행
V(G) = E(Edge) - N(Node) + 2
V(G) = P(분기문) + 1
엣지 = 6
노드 = 4
6 + 4 - 2 =4 이다
preorder = 전위순회
이기종= 다른?
자세히 읽어보면 되는데 집중력이 흐트러진거 같았다.
파티션(Partition)의 개요
데이터베이스에서 파티션은 대용량 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것을 말한다.
파티션의 종류
파티션의 종류는 파티셔닝 방식에 따라 범위 분할, 해시 분할, 조합 분할 등으로 나뉜다.
- 범위 분할 : 지정한 열의 값을 기준으로 분할 (ex. 일별, 월별, 분기별 등)
- 해시 분할
- 해시 함수를 적용한 결과 값에 따라 데이터를 분할
- 특정 파티션에 데이터가 집중되는 범위 분할의 단점을 보완한 것으로, 데이터를 고르게 분산할 때 유용
- 특정 데이터가 어디에 있는지 판단할 수 없음
- 고객번호, 주민번호 등과 같이 데이터가 고른 컬럼에 효과적
- 조합 분할
- 범위 분할로 분할한 다음 해시 함수를 적용하여 다시 분할하는 방식
- 범위 분할한 파티션이 너무 커서 관리가 어려울 때 유용
출처: https://lipcoder.tistory.com/entry/3-2-7장-파티션-설계 [기록공간]
인수 테스트는 맨 마지막 테스트입니다. 알파, 베타도 내가 인수하려하니깐 테스트하는 건가 싶기도 합니다.
1. 병행제어의 정의
- 병행제어(Concurrency Control)란 다중 프로그램의 이점을 활용하여 동시에 여러 개의 트랜잭션을 병행수행할 때, 동시에 실행되는 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록 트랜잭션 간의 상호작용을 제어하는 것이다.
4. 병행제어 기법의 종류
1) 로킹(Locking)
- - 로킹은 주요 데이터의 액세스를 상호 배타적으로 하는 것이다.
- - 트랜잭션들이 어떤 로킹 단위를 액세스 하기 전에 Lock(잠금)을 요청해서 Lock이 허락되어야만 그 로킹 단위를 액세스할 수 있도록 하는 기법이다.
- 로킹의 종류
- - 공유 로크
- - 배타 로크
- - 의도 로크
- - 의도 공유 로크
- - 배타 의도 로크
- - 공유 의도 독점 로크
- 2단계 로킹 규약
- - 각 트랜잭션의 로크 요청과 해제 요청을 2단계로 실시한다.
- - 직렬성을 보장하는 대표적인 로킹 규약이다.
- - 새로운 Lock은 수행할 수 있지만 Unlock은 수행할 수 없는 확장 단계와 새로운 Unlock은 수행할 수 있지만 lock은 수행할 수 없는 축소 단계가 있다.
- - 직렬성을 보장하는 장점은 있지만, 교착상태를 예방할 수 없다는 단점이 있다.
2) 타임 스탬프 순서(Time Stamp Ordering)
- - 직렬성 순서를 결정하기 위해 트랜잭션 간의 처리 순서를 미리 선택하는 기법들 중에서 가장 보편적인 방법이다.
- - 트랜잭션과 트랜잭션이 읽거나 갱신한 데이터에 대해 트랜잭션이 실행을 시작하기 전에 시간표(Time Stamp)를 부여하여 부여된 시간에 따라 작업을 수행하는 기법이다.
- - 교착상태가 발생하지 않는다.
3) 최적 병행 수행(검증 기법, 확인 기법, 낙관적 기법)
- - 병행수행하고자 하는 대부분의 트랜잭션이 판독 전용(Read Only) 트랜잭션일 경우, 트랜잭션 간의 충돌률이 매우 낮아서 병행제어 기법을 사용하지 않고 실행되어도 이 중의 많은 트랜잭션은 시스템의 상태를 일관성 있게 유지한다는 점을 이용한 기법이다.
4) 다중 버전 기법
- - 타임 스탬프의 개념을 이용하는 기법으로, 다중 버전 타임 스탬프 기법이라고도 한다.
- - 타임 스탬프 기법은 트랜잭션 및 데이터들이 이용될 때의 시간을 시간표로 관리하지만, 다중 버전 기법은 갱신될 때마다의 버전을 부여하여 관리한다.
replication = 복제
failure = 실패
분산 데이터베이스란?
- 논리적으로는 하나의 시스템에 속하지만 물리적으로는 네트워크를 통해 연결된 여러개의 사이트에 분산 되어있는 데이터 베이스를 말한다.
- 분산 데이터베이스는 데이터의 처리나 이용이 많은 지역에 데이터베이스를 위치시킴으로써 데이터의 처리가 가능한 해당 지역에서 해결될 수 있도록 한다.
분산 데이터베이스의 구성 요소
분산 처리기
- - 자체적으로 처리 능력을 가지며, 지리적으로 분산되어 있는 컴퓨터 시스템을 말한다.
분산 데이터베이스
- - 지리적으로 분산되어 있는 데이터베이스로서 해당 지역의 특성에 맞게 데이터베이스가 구성된다.
통신 네트워크
- - 분산처리기들을 통신망으로 연결하여 논리적으로 하나의 시스템처럼 작동할 수 있도록 하는 통신 네트워크를 말한다.
분산 데이터베이스 설계 시 고려사항
- - 작업부하(Work Load)의 노드별 분산 정책
- - 지역의 자치성 보장 정책
- - 데이터의 일관성 정책
- - 사이트나 회선의 고장으로부터의 회복 기능
- - 통신 네트워크를 통한 원격 접근 가능
분산 데이터베이스의 목표
데이터베이스 로그란?
로그 기반 회복 기법
- 지연갱신 회복 기법(Deferred Update)
- 트랜잭션의 부분 완료 상태에선 변경 내용을 로그 파일에만 저장
- 커밋이 발생하기 전까진 데이터베이스에 기록하지 않음
- 중간에 장애가 생기더라도 데이터베이스에 기록되지 않았으므로 UNDO가 필요 없음(미실행 된 로그 폐기)
- 즉시갱신 회복 기법(Immediate Update)
- 트랜잭션 수행 도중에도 변경 내용을 즉시 데이터베이스에 기록
- 커밋 발생 이전의 갱신은 원자성이 보장되지 않는 미완료 갱신이므로 장애 발생 시 UNDO 필요
출처: https://raisonde.tistory.com/entry/데이터베이스-회복-기법-정리 [지식잡식]
- 관계해석 : 원하는 데이터만 명시하고 "어떻게 질의를 해석하는가"에 대해 언급이 없는 선언적 언어이다.
- 관계대수 : "어떻게 질의를 해석하는가"에 대해 언급하는 절차적 언어이다.
순수 관계 연산자
관계 데이터베이스에 적용할 수 있도록 특별히 개발된 관계 연산자이다.
Select :
- 릴레이션에 존재하는 튜플 중에서 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션을 만듦
- 릴레이션의 행에 해당하는 튜플을 구하는 것이므로 수평 연산이라고도 함
- 연산자의 기호는 그리스 문자 시그마를 사용함.
Project :
- 주어진 릴레이션에서 속성 List에 제시된 Attribute 만을 추출하는 연산
- 릴레이션의 열에 해당하는 Attribute를 추출하는 것이므로 수직 연산자라고도함
- 연산자의 기호는 그리스 문자 파이를 사용함
Join :
- 공통 속성을 중심으로 2개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산
- 연산자의 기호는 >< 세모 두 개 합친 리본 모양
Division :
- X⊃Y인 2개의 릴레이션 R(X)와 S(Y)가 있을 때 R의 속성이 S의 속성 값을 모두가 가진 튜플에서
- S가 가진 속성을 제외(분리)한 속성만을 구하는 연산
HRN(Hightes REsponse ratio Next) - 비선점스케줄링
각 작업의 우선순위로 서비스 해주는 스케줄링
우선순위 = (대기시간 + 서비스시간) / 서비스시간
A의 우선순의 : (5+20)/20=1.25
B의 우선순위 : (40+20)/20=3
C의 우선순위 : (15+45)/45=1.3333
D의 우선순위 : (40+10)/10=5
batch = 집단
배치(batch) 프로그램이란?
- 사용자와 상호 작용 없이 일련의 작업들을 작업 단위로 묶어 정기적으로 반복 수행하나 정해진 규칙에 따라 일괄 처리하는 것이다.
낮음 강함
자료 결합도 -> 스탬프 -> 제어 -> 외부 -> 공동 -> 내용
자스제외공내 이렇게 외워보자.
https://madplay.github.io/post/coupling-and-cohesion-in-software-engineering
낮음 강함
우연적 -> 논리적 ->일시적 ->절차적 ->통신적 -> 순차적 -> 기능적
우논일절통순기
https://jhnyang.tistory.com/284
조심하자.
파이썬의 string slice는 끝부분을 포함하지 않는다. 즉 [-3:-1]은 -3~-2까지였다.
'미래를 위한 준비 > 정보처리기사' 카테고리의 다른 글
정보처리기사 6일차 (0) | 2021.07.31 |
---|---|
정보처리기사 5일차 (0) | 2021.07.30 |
정보처리기사 3일차 (0) | 2021.07.28 |
정보처리기사 2일차 (0) | 2021.07.27 |
정보처리기사 1일차 (0) | 2021.07.26 |