[Database] 트랜잭션과 무결성
·
CS/Database
1. 트랜잭션 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위를 말한다. 즉, 여러 개의 쿼리들을 하나로 묶는 단위를 말한다. 특징으로는 원자성, 일관성, 독립성, 지속성이 있다. 이러한 특징을 ACID 특징이라고 말한다. 2. 원자성 원자성(atomicity)은 트랜잭션과 관련된 일이 모두 수행되었거나 되지 않았거나를 보장하는 특징이다. 트랜잭션이 원자처럼 더 이상 쪼개지지 않는 하나의 프로그램 단위로 동작해야 한다는 의미이다. 일부만 수행되는 일이 없도록 전부 수행하거나 아예 수행하지 않아야 한다. (all or nothing) COMMIT, ROLLBACK 같은 트랜잭션 제어 명령어 (Transaction Control Language)를 이용한다. 3. 일관성 트랜잭션은 데이터베이..
[Database] ERD와 정규화 과정
·
CS/Database
1. ERDERD(Entity Relationship Diagram)는 데이터베이스를 구축할 때 가장 기초적인 뼈대 역할을 하고 릴레이션 간의 관계들을 정의한 것이다.ERD는 시스템의 요구 사항을 기반으로 작성되며 이 ERD를 기반으로 데이터베이스를 구축한다.데이터베이스를 구축한 이후에도 디버깅 또는 비즈니스 프로세스 재설계가 필요한 경우에 설계도 역할을 담당하기도 한다.ERD 관계형 구조로 표현할 수 있는 데이터를 구성하는 데 유용하다는 장점을 가지고 있다.하지만 비정형 데이터를 충분히 표현할 수 없다는 단점을 가지고 있다.*비정형 데이터란? 비구조화 데이터를 말하며, 미리 정의된 데이터 모델이 없거나 미리 정의된 방식으로 정리되지 않은 정보를 말한다.2. 정규화 과정정규화 과정은 릴레이션 간의 잘못된..
[운영체제] 프로세스의 메모리 구조
·
CS/운영체제
1. 프로세스의 메모리 구조 운영체제는 프로세스에 적절한 메모리를 할당한다. 프로세스의 메모리 구조는 아래 구조를 기반으로 할당하게 된다. 스택(stack), 힙(heap), 데이터 영역(BSS segment, Data segment),코드 영역(code segment)으로 나눠진다. 스택은 위 주소부터 할당되고 힙은 아래 주소부터 할당된다. 2. 스택과 힙 스택과 힙은 동적 할당이 되며, 동적 할당은 런타임 단계에서 메모리를 할당 받는 것을 말한다. 스택은 지역 변수, 매개변수, 실행되는 함수에 의해 늘어나거나 줄어드는 메모리 영역이다. 함수가 호출될 때마다 호출될 때의 환경 등 특정 정보가 스택에 저장된다. 또한 재귀 함수가 호출된다고 했을 때 새로운 스택 프레임이 매번 사용된다. 그렇기 때문에 함수..
[운영체제] 프로세스와 스레드
·
CS/운영체제
1. 프로세스 프로세스(process)는 컴퓨터에서 실행되고 있는 프로그램을 말하며 CPU 스케줄링의 대상이 되는 작업(task)이라는 용어와 같은 의미로 쓰인다. 스레드는 프로세스 내 작업의 흐름을 말한다. 프로그램이 메모리에 올라가면 프로세스가 되는 인스턴스화가 일어나고, 이후 운영체제의 CPU 스케줄러에 따라 CPU가 프로세스를 실행한다. 2. 전처리 소스 코드의 주석을 제거하고 #include 등 헤더 파일을 병합하여 매크로를 치환한다. 3. 컴파일러 오류처리, 코드 최적화 작업을 하며 어셈블리어로 변환한다. 4. 어셈블러 어셈블리어는 목적 코드로 변환된다. 이때 확장자는 운영체제마다 다르다. 5. 링커 프로그램 내에 있는 라이브러리 함수 또는 다른 파일들과 목적 코드를 결합하여 실행 파일을 만든..
[운영체제] 메모리 (1)
·
CS/운영체제
1. 메모리 계층 메모리 계층은 레지스터, 캐시, 메모리, 저장장치로 구성이 되어 있습니다. 레지스터는 CPU 안에 있는 작은 메모리이며 특징으로는 휘발성이고 속도가 가장 빠르며, 기억 용량이 가장 적습니다. 캐시는 L1, L2 캐시를 지칭합니다. 캐시의 특징은 휘발성이며 속도가 빠르고 기억 용량이 적습니다. 주기억장치(RAM)의 특징은 휘발성이고 속도는 보통이며, 기억 용량이 보통입니다. 보조기억장치는 HDD, SSD를 말하며 비휘발성이고 속도는 낮으며, 기억 용량이 많습니다. 램은 하드디스크로부터 일정량의 데이터를 복사해서 임시로 저장하고 필요할 때마다 CPU에 전달하는 역할을 합니다. 계층이 위로 갈수록 용량이 작아지고 속도는 빨라진다는 특징이 있습니다. 2. 캐시 캐시는 데이터를 미리 복사해 놓는..
[Database] 데이터베이스의 기본 (2)
·
CS/Database
1. 관계데이터베이스에 테이블은 여러 개가 존재합니다.이러한 테이블은 서로의 관계가 정의되어 있습니다. 이러한 관계를 관계화살표로 나타냅니다.2. 키키는 테이블 간의 관계를 더 명확하게 하고 테이블 자체의 인덱스를 위해 설정된 장치입니다.키의 종류로는 기본키, 외래키, 후보키, 슈퍼키, 대체키가 있습니다.2.1 기본키기본키(primary key)는 줄여서 PK 또는 프라이머리키라고 많이 부릅니다.기본키는 유일성과 최소성을 만족하는 키입니다.이는 테이블의 데이터 중 고유하게 존재하는 속성이며 기본키에 해당하는 데이터는 중복되어서는 안 됩니다.기본키는 자연키 또는 인조키 중에 골라서 설정합니다.2.2 자연키유저 테이블을 만든다고 가정한다면 속성은 주민번호, 이름, 성별 등이 존재할 수 있습니다.이 중 이름,..