CS 지식
-
트랜잭션(Transaction)CS 지식/데이터베이스 2021. 1. 14. 15:33
Transaction이란 무엇인가? 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 or 한번에 모두 수행돼야하는 연산들을 의미 작업의 완전성을 보장해준다. 논리적인 작업을 모두 완벽히 처리하거나 처리하지 못할 경우에는 원 상태로 복구해서 작업의 일부만 적용되는 현상이 발생되지 않게 만들어준다. 트랜잭션과 Lock Lock은 동시성을 제어하기 위한 기능, 트랜잭션은 정합성을 보장하기 위한 기능 Lock은 여러 커넥션에서 동시에 동일 자원에 대해 자원을 요청할 때 순서대로 하나의 커넥션만 변경할 수 있게 해주는 역할 트랜잭션은 쿼리의 갯수에 관계 없이 논리적인 작업 셋 자체가 100% 적용되거나 아무것도 적용되지 않아야함을 보장 특징 (ACID) 원자성(Atomicity) ..
-
정규화CS 지식/데이터베이스 2021. 1. 14. 15:23
정규화 목적 불필요한 데이터 제거하고 데이터를 논리적으로 저장하기 위해서 이상 현상 삽입 이상 원하지 않은 자료 삽입 or 삽입이 안되는 문제점(데이터 부족) 삭제 이상 하나의 자료만 삭제하고 싶지만, 그 자료가 포함된 튜플 전체가 삭제 수정 이상 정확하지 않거나 일부의 튜플만 갱신 ~> 정보가 모호 or 일관성 깨짐 위의 이상 현상을 해결하기 위해 릴레이션의 애트리뷰트를 나눠 작은 릴레이션으로 분해하는 작업 1정규화 모든 속성이 원자 값을 가져야 함(더 이상 작은 단위로 쪼개지지 않는 값) 2정규화 1정규형을 만족하면서, 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속이 돼야함 문제점 이행적 함수 종속이 존재함 삽입이상 새로운 엔티티가 생길 때, 종속되는 기본 키값이 없으면 NULL이 되므로 삽입 ..
-
인덱스(Index)CS 지식/데이터베이스 2021. 1. 14. 15:20
인덱스(Index) 인덱스(Index)란 데이터베이스 테이블의 모든 데이터를 검색해서 원하는 결과 값을 가져오려면 시간이 오래 걸리기 때문에, 특정 칼럼에 인덱스를 부여해서 정렬하는 것을 의미함 데이터가 저장된 칼럼의 값과 레코드가 저장된 주소의 키와 값의 쌍으로 인덱스를 만든다. 기본적으로 기본키가 인덱스의 기능을 하기는 한다. Index 의 성능과 고려해야할 사항 인덱스를 기준으로 정렬된 상태를 유지하기 때문에 원하는 값을 탐색하는데 빠르다. 하지만, 새로운 값을 추가,삭제,수정하는 경우에는 쿼리문 실행 속도가 느려진다. ~> 트리구조로 관리하고 있기 때문에 B-Tree & B+Tree B-Tree는 데이터가 정렬된 상태로 유지되는 트리 루트 노드와 브랜치 노드, 리프 노드로 이루어져서, 어떠한 값에..
-
데이터 베이스CS 지식/데이터베이스 2021. 1. 14. 15:18
데이터 베이스 특징 데이터 독립성 외부단계(논리적 데이터 독립성) - 개념적 단계(물리적 독립성)-내부적 단계 이 단계는 외부스키마, 내부스키마, 개념스키마로 설명 가능 물리적 독립성 내부 스키마가 변경되어도 외부/개념 스키마에는 영향이 없도록(응용 프로그램을 수정할 필요 없도록) 지원 논리적 독립성 개념 스키마가 변경되어도 외부 스키마에는 영향이 없도록 지원 데이터 무결성 데이터베이스에 저장된 값들에 대해 여러 제한을 통해 데이터에 대한 신뢰를 보장해서 일관성을 유지하는 것(유효성 검사 ~> 잘못된 데이터가 발생하는 것 방지) 영역 무결성 한 컬럼에 대해 NULL 허용 여부와 타당한 데이터 값을 지정 자료형, 규칙과 제약, 값 범위 등을 제한 참조 무결성 기본 키와 참조 키 간의 관계가 항상 유지됨을 ..
-
1. 운영체제 개요CS 지식/운영체제 2020. 11. 7. 23:58
운영체재 개요 컴퓨터 시스템의 자원을 효율적으로 관리 (자원 관리자) 프로세서, 기억장치, 입출력 장치 등의 효율적 관리 형평성 있는 자원 분배 좁은 의미의 운영체제 커널(kernel) 운영체제의 핵심 부분으로 메모리에 상주하는 부분 넓은 의미의 운영체제 커널 뿐 아니라 각종 시스템 유틸리티를 포함한 개념 운영체제 분류 동시 작업 여부 다중 작업(multi tasking) UNIX, MS Windows 등에서 한 명령 수행이 끝나기 전에 다른 명령 or 프로그램 수행 사용자의 수 단일 사용자(single user) MS-DOS, MS Windows 다중 사용자(multi user) UNIX, NT server 처리 방식 일괄 처리(batch processing) 작업 요청의 일정량을 모아서 한꺼번에 처리..
-
뮤텍스와 세마포어CS 지식/운영체제 2020. 10. 21. 19:39
뮤텍스와 세마포어 2020/08/17 - [CS 기초 지식] - 멀티 스레드의 임계 구역과 뮤텍스, 세마포어 멀티 스레드의 임계 구역과 뮤텍스, 세마포어 임계 구역과 뮤텍스, 세마포어 임계 영역 한개의 연산을 둘 이상의 쓰레드가 동시에 실행할 경우 발생할 수 있는 코드 블록 쓰레드 안에 있는 코드 블록이 임계 영역이 된다. 따라서, 문제가 발 zin0-0.tistory.com 뮤텍스 쓰레드의 동시 접근을 허용하지 않고, Mutex를 이용해서 특정 변수로 접근하는 쓰레드를 차단하면, 나머지 쓰레드는 대기줄에 기다리게하는 기법 뮤텍스를 사용한 쓰레드가 뮤텍스를 반환하면, 대기줄에 있는 순서대로 쓰레드가 뮤텍스를 생성해서 잠금 ~> 순환 뮤텍스 잠금 후에 해제를 하지 않으면, 잠금 함수는 블로킹 상태에서 빠져..
-
Deadlock & StarvationCS 지식/운영체제 2020. 10. 21. 19:38
Deadlock과 Starvation 데드락(Deadlock, 교착상태) 둘 이상의 쓰레드가 lock 획득을 기다리는데, 이 lock을 잡고있는 쓰레드도 똑같이 다른 lock을 기다리며 서로 블록상태에 놓이는 것을 의미한다. 즉 무한 대기상태에 빠지는 것을 교착상태라고 한다. 교착 상태 발생의 필요 충분 조건 상호배제 - 한번에 한개의 프로세스만 공유자원 사용 점유와 대기 - 최소 하나 자원을 점유하고 다른 프로세스에 할당되어 사용되는 자원을 추가로 점유하기 위해 대기하는 프로세스가 존재 비선점 - 다른 프로세스에 할당된 자원은 사용이 끝나기 전까지 뺏을 수 없음 환형 대기 - 공유자원과 사용하기 위해 대기하는 프로세스가 원형으로 구성되어 대기해야함 예방 기법 위의 4가지 필요충분 조건을 부정하면 된다...
-
프로세스와 스레드CS 지식/운영체제 2020. 10. 21. 19:35
프로세스와 스레드 2020/08/17 - [CS 기초 지식] - 프로세스와 스레드 프로세스와 스레드 프로세스와 스레드 프로세스 사전적 의미 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 OS에서 메모리 영역을 할당받아 실행되는 독립적인 프로그램의 인스턴스 OS로부터 시스템 자원 zin0-0.tistory.com 저번에 정리한 내용이 부족한 것 같아서 추가적으로 정리해본다. 프로세스 보조 기억장치에 기억되는 프로그램은 실행되기를 기다리는 명령어와 정적 데이터의 묶음이다. 이 프로그램의 명령어와 정적 데이터가 메모리에 적재되면 프로세스가 된다. 즉, 실행 중인 프로그램이란 의미가 된다. 다른 말로 풀면 OS에게 메모리 영역을 할당받아 실행되는 독립적인 프로그램의 인스턴스, OS로부터 시스템 자원을 할당..