데이터베이스시스템 만점 과제문제 1) ACID 이론과 CAP 이론 비교·설명 (10점)전통적 관계형 데이터베이스의 트랜잭션 관리 핵심 원칙인 ACID 이론과 NoSQL 기반의 CAP 이론을 비교하여 설명하시오.ACID 이론과 CAP 이론 비교·설명1. ACID 이론 개요ACID는 전통적인 관계형 데이터베이스(Relational DB)에서 트랜잭션의 정확성과 안정성을 보장하기 위한 4가지 핵심 원칙이다.요소설명A - Atomicity원자성트랜잭션은 모두 수행되거나 전혀 수행되지 않아야 함C - Consistency일관성트랜잭션 수행 전후의 데이터 무결성이 유지되어야 함I - Isolation고립성동시에 수행되는 트랜잭션이 서로 영향을 주지 않아야 함D - Durability지속성성공한 트랜잭션의 결과는 영구적으로 저장되어야 함적용 예시: 은행 시스템, 회계 처리 등 정합성과 정확성이 중요한 업무2. CAP 이론 개요CAP 이론은 NoSQL과 같은 분산 시스템에서 발생하는 네트워크 분할(Partition) 상황을 고려하여, 다음 세 가지 속성 중 동시에 2가지만 보장 가능하다는 이론이다.요소설명C - Consistency일관성모든 노드가 동일한 데이터를 반환해야 함A - Availability가용성모든 요청에 대해 항상 응답을 반환해야 함P - Partition Tolerance분할 허용성네트워크 분할 상황에서도 시스템은 계속 동작해야 함적용 예시: SNS, IoT, 로그 수집, 대용량 분산 저장 시스템 등3. ACID vs CAP 이론 비교다음은 두 이론의 핵심 차이를 비교한 표이다.항목ACID (관계형 DB)CAP (NoSQL, 분산 DB)중심 설계 목표트랜잭션의 안정성과 정합성 유지네트워크 분산 환경에서의 유연성 및 확장성시스템 구조중앙 집중형노드 기반 분산형 시스템일관성 보장 수준강한 일관성약한 일관성 또는 최종 일관성가용성일부 장애 시 응답 불가노드 장애에도 서비스 지속 가능사용 사례금융, ERP, 병원 기록 등SNS, 로그 처리, 빅데이터 저장 등4. 종합 분석 및 활용 방향관계형 데이터베이스는 ACID 이론을 기반으로 안정적인 트랜잭션 처리에 강점을 가지며, 주로 정확성이 중요한 분야에 활용된다.NoSQL 데이터베이스는 CAP 이론을 통해 확장성과 성능, 유연성을 확보하며, 대규모 분산 환경이나 실시간 처리가 요구되는 서비스에서 적합하다.현대 시스템은 혼합 전략을 추구한다. 예를 들어,NoSQL에서는 BASE(Basically Available, Soft state, Eventually consistent) 모델을 사용해 CAP의 유연성을 강화하고,NewSQL DBMS는 분산 환경에서도 ACID 보장을 시도하고 있다.5. 결론ACID와 CAP 이론은 각각의 시스템 목적에 맞춰 최적의 성능과 신뢰성을 제공하는 기반이 된다.사용자는 다음과 같은 기준으로 선택해야 한다.정합성, 무결성 우선 → ACID 기반 RDB확장성, 가용성 우선 → CAP 기반 NoSQL빅데이터, IoT, 클라우드 기반 시스템의 확산에 따라 CAP 이론의 중요성은 증가하고 있으며,기업은 상황에 맞게 ACID와 CAP을 적절히 혼합한 하이브리드 구조를 설계할 필요가 있다.문제 2) In-Memory DB (10점)빠른 처리를 위해 DISK 기반이 아닌 In-Memory DB(Main-Memory) 채택이 증가하고 있다.In-Memory DB 중 3가지를 선택하여, 각각의 특징 및 활용 분야를 서술하시오.In-Memory DBMS 세 가지 비교 및 활용 분야1. SAP HANA특징컬럼 기반 저장 구조와 메모리 중심 구조를 갖춘 상용 DBMS.디스크 I/O 최소화로 초고속 처리 가능.OLAP(분석)과 OLTP(트랜잭션) 기능을 하나로 통합한 아키텍처.아키텍처T-트리 구조 대신 컬럼 기반 압축 저장 방식을 사용.CPU-메모리 연산을 최적화하여 병렬 처리에 강함.활용 분야실시간 BI(Big Data 분석), ERP 시스템(SAP S/4HANA) 등.금융, 유통, 제조 산업의 실시간 의사결정 지원 시스템.보안 및 기타기업용 데이터 보안 기능 탑재 (암호화, 접근 제어).디스크로 비정기적으로 데이터를 저장해 장애 복구 가능.2. Redis특징Key-Value 기반 오픈소스 In-Memory DB.데이터는 메모리에 저장되며, 필요시 디스크로 Snapshot 또는 AOF(Append Only File)로 백업 가능.아키텍처단일 스레드 이벤트 기반 구조.메모리 내부에서 해시, 리스트, 셋 등 다양한 자료구조 지원.활용 분야캐시(Cache) 서버, 세션 관리, 실시간 순위 처리 시스템 등.SNS, 게임 서버의 실시간 사용자 데이터 저장에 적합.보안 및 기타TLS/SSL, 인증 키 기반 접근 제어 제공.데이터를 디스크에 비동기 저장하여 복구 가능.3. VoltDB특징오픈소스 기반 고속 트랜잭션 In-Memory DB.ACID 트랜잭션 보장하며 초당 수백만 건의 처리 가능.아키텍처메모리 기반 Partitioned Architecture 사용.T-트리 유사 구조를 기반으로 다중 노드 분산 처리에 최적화.활용 분야실시간 광고 분석, 금융 거래 처리, IoT 이벤트 스트림 처리.Telco(통신), FinTech 산업에서 고성능 요구 환경.보안 및 기타역할 기반 접근 제어, 암호화 기능 포함.Snapshot 및 Command Logging 기능으로 장애 복구 대응.항목SAP HANARedisVoltDB오픈소스 여부상용오픈소스오픈소스구조컬럼 기반, 병합 엔진Key-Value, 단일 스레드Partition 기반, 분산 구조보안 기능고급 기업 보안TLS, 인증 키역할 기반 접근 제어활용 분야ERP, 실시간 분석캐시, 세션, 실시간 순위고속 트랜잭션, 실시간 분석문제 3) 도서 주문 시스템 ERD 설계 설명설명:고객 (customers): 고객 정보를 저장하는 테이블로, 고객ID, 이름, 연락처를 포함합니다.책 (books): 책 정보를 저장하는 테이블로, 책ID, 제목, 저자, ISBN, 그리고 책이 소속된 도서관ID를 포함합니다.도서관 (libraries): 도서관 정보를 저장하는 테이블로, 도서관ID, 이름, 위치를 포함합니다.대출 (loans): 고객이 책을 대출한 정보를 기록하는 테이블로, 대출ID, 고객ID, 책ID, 대출일 및 반납일을 포함합니다.연기 (extensions): 대출 연기 정보를 관리하는 테이블로, 연기ID, 대출ID, 연기 횟수, 연기 수수료 및 연장된 반납일을 포함합니다.관계:고객과 대출: 한 고객은 여러 건의 대출을 할 수 있습니다. (1:N)책과 대출: 한 책은 여러 고객에게 대출될 수 있습니다. (1:N)도서관과 책: 한 도서관은 여러 권의 책을 보유할 수 있습니다. (1:N)대출과 연기: 한 대출은 최대 5번까지 연기가 가능하며, 각 연기에는 연기 횟수, 수수료, 연장된 반납일이 포함됩니다. (1:N)
UNIX 시스템 과제컴퓨터과학과 홍길동 20241245-12245871.2.3.별칭을 설정하는 명령어 alias를 사용하여 dir을 입력하면 ls -l 명령어가 수행되도록 입력한다.첫번째 사진 : dir명령을 수행할 때 나오는 결과와 ls -l 명령을 수행할 때 나오는 결과를 먼저 확인한다.두번째 사진 : dir을 ls -l 명령이 수행되도록 별칭(alias)을 설정한 후 dir을 입력하면 ls -l과 같은 결과가 나오는 지 확인이 가능하다.4.디렉터리의 기본 접근권한을 755, 파일의 기본 접근권한을 644로 설정하기 위해 umask명령어를 사용한다.디렉터리는 기본적으로 777, 파일은 666으로 설정이 되어있기 때문에 umask 022 명령어를 입력하면 디렉터리는 755, 파일은 644로 접근권한이 변경된다.확인을 위해 newfile과 newdir를 각각 만들어보고 ls -l 명령어를 이용하여 접근권한이 각각 755(rwxr-xr-x, 맨 앞 d는 디렉터리를 의미), 644(rw-rr--)로 설정되어있는지 확인이 가능하다.5.이름이 ”empty”인 빈 디렉터리를 생성한 후 dir로 확인한다.(비어있는 디렉터리는 파란색 글씨로 표시된다)