SMALL

Thread Pool

Thread를 미리 여러개 만들어 두고, 요청 시 가용한 Thread 할당

사용이유

  • 프로그램 성능 저하 방지(Thread 사용시마다 생성하면 느려지겠지?)
  • 다수의 사용자 요청을 처리하기 위해
  • 군대 병력 요청이라고 생각하면 쉬움.(군대 병력 미리 훈련 안시키면, 막상 전쟁나서 필요할 때마다 훈련 시키면 지연되는거나 마찬가지)

주의사항 및 장점

  • Thread 수는 cpu 개수, 메모리 용량, 동시 요청 고객 수 등을 고려하여 생성
  • 빠르고 안정감이 있음


LIST

'전공 > 운영체제' 카테고리의 다른 글

Mutex(뮤텍스), Semaphore(세마포어)  (0) 2020.09.17
Starvation(기아현상), Aging(노화)  (0) 2020.09.17
페이지 테이블  (0) 2020.09.14
Segmentation, Paging  (0) 2020.09.14
커널 레벨 쓰레드, 유저 레벨 쓰레드  (0) 2018.05.04
SMALL

데이터베이스 설계단계

요구사항 분석 -> 개념적 설계 -> 논리적 설계 -> 물리적 설계 -> 구현

요구사항 분석

요구사항을 수집하여 요구사항 명세서로 작성하는 단계

개념적 설계

요구사항 명세서를 바탕으로 Entity와 Relation을 도출하여 E-R 다이어그램을 작성하는 단계

논리적 설계

E-R 다이어그램을 스키마로 변환하여 DBMS가 처리할 수 있도록 한다.

ex) [학생] 학생번호(PK), 학생명, 학년, 담임선생님번호(FK)

물리적 설계

논리적 설계에서 나온 것을 물리적 구조의 데이터로 변환하는 과정이며, db 저장 구조 및 인덱스 구조, 제약사항 등을 고려하여 설계

ex) creat table 문 생각하면 됨.

LIST

'전공 > 데이터베이스' 카테고리의 다른 글

데이터베이스 정의  (0) 2021.05.03
RAID  (0) 2020.09.18
정규화 단점  (0) 2020.09.16
BCNF 정규화  (0) 2020.09.16
스키마(Schema)  (0) 2020.09.15
SMALL

장점

  • 생산성 향상
  • 자연적인 모델링
  • 재사용
  • 유지보수의 용이성

단점

  • 실행 시 속도가 느림


LIST

'전공 > 소프트웨어공학' 카테고리의 다른 글

컴포넌트 기반 개발방법론  (0) 2021.05.16
익스트림 프로그래밍(XP : eXtreme Programming)  (0) 2021.05.16
유지보수 유형  (0) 2021.05.16
HIPO  (0) 2021.05.16
응집도와 결합도  (0) 2020.07.15
SMALL

정규화를 하게 되면 테이블이 나뉘어지기 때문에 조인이 많아지므로 응답시간이 느려진다.. 그러므로 적절한 정규화를 하는게 좋을 것 같다.

LIST

'전공 > 데이터베이스' 카테고리의 다른 글

RAID  (0) 2020.09.18
데이터베이스 설계단계  (0) 2020.09.17
BCNF 정규화  (0) 2020.09.16
스키마(Schema)  (0) 2020.09.15
트리거(Trigger)  (0) 2020.09.15
SMALL

BCNF 정규화

Boyce-Codd Normal Form의 약자이며 3정규화보다 강한 정규화입니다.
그래서 BCNF를 만족하면 3정규화도 만족합니다.
BCNF는 비결정자에 의한 함수종속을 제거해야 하는 것을 의미합니다.


예시

위의 릴레이션은 요청리스트입니다.

제약조건은 담당자는 하나의 요청범주만 담당할 수 있습니다. 반대로 고객은 요청을 여러번 할 수 있습니다.



그렇다면 고객ID,요청범주로 담당자ID를 식별할 수 있습니다. 그리고 고객ID와 담당자ID로도 요청범주를 결정할 수 있습니다. 이렇게 되면 후보키가 2개가 되는데, PK는 한개만 되어야 하기에 둘 중 한개 선택해야합니다.


PK를 고객ID,담당자ID로 한다치면, 요청범주는 후보키가 아님에도 담당자ID를 결정짓고 있습니다.(제약조건때문)

이런 경우 이상현상이 발생합니다.


예를 들자면 새로운 담당자 D1이 출원인대리인 요청범주를 담당하는 것으로 INSERT가 된다면 아직 고객이 요청 온 것이 없기에 NULL, 출원인대리인, D1이 INSERT되어야 하는데 PK가 고객ID,담당자ID 이므로 NOT NULL이 되어야 하기에 삽입이상이 발생합니다.


갱신이상은 A1이 심판을 담당하게 된다면 2개의 행을 변경해야하는데 한개만 변경된다면 문제가 발생합니다.


삭제이상은 333고객이 요청을 취소한다면 디자인심사에 대한 정보를 잃게 되는 문제가 발생합니다.


해결방안

위와 같이 2개의 릴레이션으로 분할하면 문제가 없다.




LIST

'전공 > 데이터베이스' 카테고리의 다른 글

데이터베이스 설계단계  (0) 2020.09.17
정규화 단점  (0) 2020.09.16
스키마(Schema)  (0) 2020.09.15
트리거(Trigger)  (0) 2020.09.15
전체 백업, 차등 백업, 증분 백업  (3) 2020.09.13
SMALL

스키마

스키마는 데이터베이스 구조와 제약 조건에 관한 전반적인 명세를 기술한 것을 의미

스키마 특징

  • 스키마는 데이터 사전에 저장
  • 현실세계 특정 한 부분의 표현
  • 시간에 따라 불변인 특성
  • 인스턴스에 의해 규정
  • 데이터 구조적 특성을 의미

외부스키마(사용자 뷰)

  • 전체 데이터베이스의 하나의 논리적인 부분 (서브스키마)
  • 일반 사용자는 SQL을 이용하여 DB를 쉽게 사용 가능
  • 같은 DB에서도 다른 관점을 정의 가능

개념스키마(전체 뷰)

  • 전체 데이터베이스의 논리적 구조
  • 개체간의 관계와 제약 조건을 명시
  • DB 접근 권한, 보안 및 무결성 규칙 정의
  • 단순히 스키마라고 하면, 개념 스키마를 의미
  • DBA가 관리

내부스키마(저장 스키마)

  • 물리적 저장장치의 입장에서 본 데이터베이스 구조
  • 실DB에 저장될 레코드의 물리적 구조를 정의
  • 시스템 프로그래머, 설계자가 보는 관점의 스키마




LIST

'전공 > 데이터베이스' 카테고리의 다른 글

정규화 단점  (0) 2020.09.16
BCNF 정규화  (0) 2020.09.16
트리거(Trigger)  (0) 2020.09.15
전체 백업, 차등 백업, 증분 백업  (3) 2020.09.13
GRANT 구문  (0) 2020.09.08
SMALL

트리거(Trigger)

트리거는 insert, update, delete 같은 DML이 Table에 행해질때 자동으로 실행되는 것이다.

특징

  • 트리거는 테이블에만 정의 될 수 있으며, 따로 데이터베이스에 저장된다.
  • 실행된 테이블의 관계된 테이블을 변경함으로써 데이터 무결성을 강화
  • 트리거는 각 테이블에 최대 3개까지 생성 가능
  • 트리거가 정의된 작업이 존재하는데, 또 트리거를 정의하면 덮어쓰기가 된다.
  • 테이블 소유자만이 트리거 생성 및 삭제 가능
  • 데이터 무결성이나 업무 규칙 처리에만 사용 권장
  • 트리거는 TCL(COMMIT, ROLLBACK, SAVEPOINT)사용 불가능
  • 트리거 문장이 커밋,롤백 될때, 트리거 작업도 커밋,롤백 수행

사용 불가 SQL 명령

  • CREATE, DROP
  • ALTER
  • TRUNCATE
  • GRANT, REVOKE
  • SELECT INTO

성능

  • 오버헤드 적음
  • 트리거 실행 시간은 대부분 다른 테이블 참조에 사용
  • 트리거에 의해 참조 테이블 위치가 작업시간 결정

종류

  • 문장 트리거 : 트랜잭션 작업에 대해 1번 발생됨
  • 행 트리거 : 각 행마다 트리거 발생

PS. 문법은 생략


LIST

'전공 > 데이터베이스' 카테고리의 다른 글

BCNF 정규화  (0) 2020.09.16
스키마(Schema)  (0) 2020.09.15
전체 백업, 차등 백업, 증분 백업  (3) 2020.09.13
GRANT 구문  (0) 2020.09.08
이상현상(Anomaly)  (0) 2020.07.13
SMALL

페이지 테이블

  • 각 페이지가 실제 메모리에는 어떤 프레임(물리메모리의 블록)에 저장이 되어있는지 매핑 정보 담고 있음

해시 페이지 테이블

  • 논리 주소의 페이지 번호를 해시 값으로 사용
  • 주소공간이 32bit보다 큰 경우에 많이 사용

계층적 페이지 테이블

  • 페이지 테이블 자체를 또 페이지화 하는 것

역 페이지 테이블

  • 물리 메모리의 프레임 번호로 인덱스되는 테이블
  • 메모리 공유 어려움
  • 최악의 경우 페이지 테이블 전체 탐색해야 함으로써 성능이 저하가 발생(성능저하 보완하기 위해 고성능/고비용 TLB 사용)


LIST

'전공 > 운영체제' 카테고리의 다른 글

Mutex(뮤텍스), Semaphore(세마포어)  (0) 2020.09.17
Starvation(기아현상), Aging(노화)  (0) 2020.09.17
Thread Pool(스레드 풀)  (0) 2020.09.17
Segmentation, Paging  (0) 2020.09.14
커널 레벨 쓰레드, 유저 레벨 쓰레드  (0) 2018.05.04
SMALL

Segmentation

  • 하나의 프로세스를 논리적(가변) 단위로 분할
  • 외부단편화(O), 내부단편화(X)

Paging

  • 하나의 프로세스를 물리적(고정) 단위로 분할
  • 외부단편화(X), 내부단편화(O)


LIST

'전공 > 운영체제' 카테고리의 다른 글

Mutex(뮤텍스), Semaphore(세마포어)  (0) 2020.09.17
Starvation(기아현상), Aging(노화)  (0) 2020.09.17
Thread Pool(스레드 풀)  (0) 2020.09.17
페이지 테이블  (0) 2020.09.14
커널 레벨 쓰레드, 유저 레벨 쓰레드  (0) 2018.05.04
SMALL

Baas(Blochain as a Service)

  • 클라우드 기반의 블록체인 서비스를 개발 및 테스트 가능하게 블록체인 시스템 환경(분산 네트워크 등) 및 기능(거래정보 검증, 노드관리 등)을 제공하는 환경
  • BaaS는 PaaS에 블록체인을 적용한 것입니다.

장점

  • 하드웨어와 소프트웨어 자원을 보유하지 않아도 블록체인을 생성하여 개발 및 운영환경 제공
  • 블록체인의 노드 추가 및 제거 단순화
  • 클라우드 환경에서는 어느 지역에서도 인프라 및 서비스 구성 가능

사례

  • 마이크로소프트의 EBaaS와 IBM의 Bluemix가 있음
  • 금융회사 간 송금,결제 등의 활용
  • 온라인 여행 결제 서비스 활용
  • 식품 공급망 내 추적 및 투명성 확보를 위한 블록체인 활용


LIST

'전공 > 신기술' 카테고리의 다른 글

뉴럴링크  (0) 2020.10.13
페이덱스(Paydex)  (0) 2020.10.12
오픈뱅킹  (0) 2020.09.14
오피니언 마이닝  (0) 2020.07.06
인슈어테크  (0) 2020.07.05

+ Recent posts