본문 바로가기

CS Knowledge

(22)
DataBase - Join 이번 블로그에서는 조인에 대해서 정리해보고자 한다. 조인 - 조인이란 하나의 테이블이 아닌 두 개 이상의 테이블을 묶어서 하나의 결과물을 만드는 것을 의미한다. - MySQL은 JOIN 쿼리를 사용하고 MongoDB에서는 lookup이라는 쿼리를 사용한다. (하지만 MongoDB에서는 조인에 대한 성능이 떨어져 되도록이면 사용하면 안된다) 1. 종류 1. 내부 조인 (교집합) : 왼쪽 테이블과 오른쪽 테이블의 두 행이 모두 일치하는 행이 있는 부분만 결과 테이블에 표기 - DEFAULT - INNER 사용 - 예를 들어, TABLEA에 데이터 중 TABLEB의 데이터와 연결되는 데이터가 없을 시, 해당 TABLEA의 데이터는 반환하지 않는다. SELECT A.name, B.name FROM TABLEA ..
DataBase - Index 이번 블로그에서는 인덱스에 대해서 알아보려고 한다. 인덱스 - 데이터를 빠르게 찾을 수 있는 하나의 장치 - 인덱스는 보통 'B-트리' 자료 구조로 이루어진다. 1. B-트리 - 루트 노드, 브랜치 노드, 리프 노드로 구성 39 83 88 46 53 - 46 53 57 83 - 89 92 100 55 57 - 만약 57을 찾는다면 이동 경로는 39-83-46-53-57-57 이 된다. - 루프노드 -> 브랜치 노드 -> 리프 노드 순으로 이동한다. 2. 인덱스가 효율적인 이유 - 모든 요소에 접근할 수 있는 균형 잡힌 트리구조와 트리깊이의 대수확정성 때문에 - 대수 확장성 : 트리 깊이가 리프 노드 수에 비해 매우 느리게 성장하는 것을 의미. 3. 인덱스를 만드는 방법 MySQL - 클러스터형 인덱스와 ..
DataBase - Type 이번에는 데이터베이스의 종류에 대해서 정리해보고자 한다. 1. 관계형 데이터베이스 2. NoSQL 데이터베이스 1. 관계형 데이터베이스(RDBMS) - 행과 열을 가지는 표 형식 데이터를 저장 - SQL이라는 언어를 써서 조작 - MySQL(SQL 사용), PostgreSQL, Oracle(PL/SQL 사용), SQL Server(T-SQL 사용), MSSQL 등 - 운영체제와 호환여부를 판단해야 함. PostgreSQL - VACCUM(디스크 조작이 차지하는 영역을 회수 가능) - 최대 테이블 312TB - JSON으로 쿼리처리 허용 - 지정 시간에 복구하는 기능 - 로깅, 접근 제어, 중첩된 트랜잭션, 백업 등의 기능을 제공 MySQL 특징 - 대부분의 운영체제와 호환 - C, C++ 기반 - MyI..
DataBase - Transaction and Integrity 트랜잭션과 무결성에 대해서 이번 블로그에서 정리해보려고 한다. 트랜잭션 - 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위를 말한다. 데이터베이스에 접근하는 방법은 쿼리이므로, 여러개의 쿼리들을 하나로 묶는 단위를 말한다. - 특징 : 원자성, 일관성, 독립성, 지속성 (ACID) 무결성 - 개체 무결성 : 기본키로 선택된 필드는 NULL을 허용하지 않는다. - 참조 무결성 : 서로 참조 관계에 있는 두 테이블의 데이터는 항상 일관된 값을 유지해야 한다. - 고유 무결성 : 특정 속성에 대해 고유한 값을 가지도록 조건이 주어진 경우 그 속성 값은 모두 고유한 값을 가진다. - NULL 무결성 : 특정 속성에 NULL이 올 수 없다는 조건이 주어진 경우, 그 속성 값은 NULL이 될 수 없..
Computer Structure - Controller 임석구, 홍경호의 '최신 컴퓨터 구조' 를 참고 하였습니다. 1. 제어 장치의 기능 2. 제어 장치의 종류 3. 명령어 사이클 4. 파이프 라이닝 1. 제어장치의 기능 제어장치 정의 : 컴퓨터의 모든 동작을 제어하는 CPU의 핵심장치 기능 1. ALU, I/O 장치를 제어해 프로세스가 명령한 수행 2. 주기억 장치의 명령어를 읽어 CPU의 명령 레지스터 IR로 가져오고, 이의 opcode를 해독하여 제어 신호를 발생 (명령어 인출, 해독, 실행 제어) 2. 제어장치의 종류 - 하드와이어 제어장치 - 마이크로 프로그램 제어장치 - 수평적 마이크로 프로그램 - 수직적 마이크로 프로그램 3. 명령어 사이클 명령어 사이클 : 명령어 인출 -> 명령어 해독 -> 명령어 실행 인터럽트 사이클 : 매 명령어 사이클이..
Computer Structure - CPU(2) '최신 컴퓨터 구조' 임석구, 홍경호를 참고하였습니다. 4. 컴퓨터 명령어 5. 주소 지정 방식 컴퓨터 명령어 - 연산코드, 오퍼랜드, 피연산자의 위치, 연산결과의 저장 위치 등 여러가지 정보로 구성 1. 명령어 형식 예시 : Z=(B+C)xA 구현 1) 0-주소 PUSH B PUSH C ADD PUSH A MUL POP Z 2) 1-주소 (누산기 관련) LOAD B ADD C MUL A STOR Z 3) 2-주소 MOV R1 B ADD R1 C MUL R1 A MOV Z R1 4) 3-주소 ADD R1, B, C MUL Z, A, R1 2. 명령어 형식 설계 기준 1. 명령어 길이 2. 명령어 형식의 공간 3. 주소필드의 비트 수 3. 확장 opcode - 연산 코드의 비트 수와 주소비트의 수의 비율로..
Computer Structure - CPU(1) 임석구, 홍경호 저자의 '최신 컴퓨터 구조'를 참고하였음을 알립니다. 1. 프로세서 구성과 동작 2. 산술 논리 연산 장치 3. 레지스터 프로세서(CPU) 구성과 동작 컴퓨터의 3가지 핵심 장치 : 프로세서(CPU), 메모리, 입출력 장치 버스 : 장치간 주소, 데이터, 제어 신호를 전송하기 위한 연결 통로 1) 버스 구성 - 내부 버스 : 프로세서 내부의 장치 연결 - 시스템 버스 : 핵심장치 및 주변 장치 연결 2) CPU 구성 - 산술 논리 연산 장치(ALU) : 산술 논리 연산 등 기본 연산을 수행, 그 결과를 누산기(AC)에 저장 - 제어 장치 : 메모리에서 명령을 가져와 해독하고 실행에 필요한 장치들을 제어하는 신호를 발생 - 레지스터 세트 : CPU 내에 존재하는 용량은 작지만 속도가 매우 ..
Computer Structure - Digital Logic Circuits(2) 이 글은 임석구, 홍경호 저자의 '최신 컴퓨터 구조'를 참고했음을 알립니다. 3. 조합 논리 회로 조합 논리 회로 - 현재 입력값으로 출력이 결정되는 회로 설계 과정 1. 시스템 분석과 변수 정의 2. 진리표 작성 3. 논리식의 간소화 4. 논리 회로도 구성 종류 1) 반가산기(HA) - 입력 2개, 출력 2개 - 2개의 입력에 대해 합(S)와 캐리(C)를 출력하는 조합 논리 회로 - S에는 XOR, C에는 AND 연결 2) 전가산기(FA) - 입력 3개, 출력 2개 - C(i) = 0,1,0,1,0,1... - S = A,B,C(i)의 XOR - C(0) = 1이 두개이상이면 1 3) 반감산기(HS) - 입력 2개, 출력 2개 - A와B의 차(D), 빌림 수(K)를 계산한다. - D = A,B의 XOR..