운영체제

컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스 담당

-Windows : 중/소규모 서버, 일반 PC, 세계최대 점유율

  • UNIX : 벨연구소에서 개발, 대용량 처리, 엔터프라이즈 급 서버
  • Linux : 중/대규모 서버 대상, 높은 보안성, 비용 가장 적음
  • Android : 리눅스 위에서 구동, 자바와 코틀린으로 작성
  • IOS : 높은 보안성, 고성능

운영체제 현행 시스템 분석 고려사항

신뢰도, 성능, 기술 지원, 주변 기기 , 구축 비용

미들웨어

응용 프로그램과 환경 간에 원만한 통신이 이루어질 수 있도록 제어해주는 SW

WAS

서버계층에서 애플리케이션이 동작할 수 있는 환경 제공, 트랜잭션 처리, 이기종 시스템 연동

DBMS

데이터 관리의 복잡성을 해결하는 동시에 데이터 추가, 변경, 검색, 삭제 및 백업, 복구 보안 등의 기능을 지원하는 SW

스키마

외부, 개념, 내부 스키마로 나눌 수 있으며 데이터의 구조와 제약조건을 명세한 것

DB 설계 순서

요구사항 분석 > 개념적 > 논리적(정규화) > 물리적(반정규화)

논리 데이터 모델

현실정보를 단순화해서 체계적으로 표현한 것

  • 관계 데이터 모델 : 1:1, 테이블
  • 계층 데이터 모델 : 1:N, 트리
  • 네트워크 데이터 모델 : N:M, 그래프

논리 데이터 모델링 속성

개체(entity), 속성(attribute), 관계(relationship)

무결성

개체무결성 : 기본키는 Null 과 중복이 불가능 참조무결성 : 외래키는 Null 이거나 참조기본키

관계 데이터 모델 주요개념

  • 튜플(tuple), 행(row), 카디널리티(투플의 수, cardinality)
  • 속성(attribute), 열(column), 차수(속성의 수, degree)

관계 대수

정하는 정보로 유도하는 방법을 나타낸 절차적 언어이다.

  • 일반 집합 연산자 : 합집합(∪), 교집합(∩), 차집합(─), 카티션 프로덕트(X)
  • 순수 관계 연산자 :
    • 셀렉트(σ) : R에서 조건을 만족하는
    • 프로젝트(π) : R에서 주어진 속성들의 값으로만 구성된
    • 조인(⋈) : 공통 속성을 이용
    • 디비전(÷) : 릴레이션 S의 모든 튜플과 관련 있는 R의 튜플 반환

관계 해석

E.F.Codd가 창안한 튜플 관계 해석과 도메인 관계해석을 하는 비절차적(술어해석) 언어이다.

개체-관계(E-R) 모델

현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해 사용되는 모델

  • 개체 □
  • 관계 ◇
  • 속성 ○
  • 다중 값 속성 ◉
  • 관계-속성 ─

정규화 (매우중요)

데이터의 중복성을 제거해 이상현상을 방지함 (몇 정규형인지 테이블을 보고 해석하는 연습 필요)

  • 1NF : 도메인이 원자값
  • 2NF : 부분함수 종속 제거
  • 3NF : 이행함수 종속 제거( A→ B , B→C 이면 A→C)
  • BCNF : 결정자 후보 키가 아닌 함수 종속 제거
  • 4NF : 다치(다중 값) 종속 제거
  • 5NF : 조인 종속 제거

함수적 종속 (Functional Dependency)

완전 (Full), 부분(Partial), 이행적(Transitive)

이상 현상 (Anomaly)

데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적인 현상

  • 삽입 이상, 삭제 이상, 갱신 이상

반 정규화

정규화 된 엔티티, 속성, 관계에 대해 물리적 모델링 단계에서 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 과정

인덱스 (색인, Index)

전체 데이터 검색 없이 필요한 정보에 대해 신속한 조회를 위해 사용 답으로 인덱스를 써야할 일이 있다면 “색인” 또는 “Index” 라고 쓰지 않으면 오답

뷰 (View)

자료를 제한적으로 보여주기 위해 하나 이상의 기본 테이블로 구성된 가상 테이블

클러스터

효율을 향상시키기 위해 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 방법

트랙잭션의 특성(ACID)

  • 원자성 : 명령문 전체를 실행하거나 어떤 부분도 실행하지 않거나 둘 중 하나
  • 일관성 : 트랜잭션이 테이블에 변경 사항을 적용할 때 미리 정의되고 예측되는 방식만 취함
  • 독립성 : 동시 트랜잭션이 서로 방해하거나 영향을 미치지 않음
  • 영속성 : 실행된 트랜잭션은 영구적으로 반영됨

파티션(Partition)의 종류

  • 레인지(Range) 파티셔닝 : 연속적인 숫자나 날짜 기준
  • 해시(Hash) 파티셔닝 : 파티션 키의 해시 함수 값
  • 리스트(List) 파티셔닝 : 특정 파티션에 저장 될 데이터에 대한 명시적 제어 가능
  • 컴포지트(Composite) 파티셔닝 : 레인지, 해시, 리스트 중 2개 이상의 파티셔닝 결합

분산 데이터베이스의 목표

  • 위치 투명성 : DB의 실제 위치와 무관하게 논리적 위치 만으로 엑세스 가능
  • 중복 투명성 : 동일 데이터가 여러 곳에 중복으로 있어도 사용자에겐 하나로 보임
  • 병행 투명성 : 다수의 트랜잭션이 동시에 실행되더라도 트랜잭션에 영향 없음
  • 장애 투명성 : 네트워크 등 오류가 발생해도 트랜잭션이 정확히 처리되고 무결성 보장
  • 분할 투명성 : 하나의 논리적 릴레이션이 실제론 분산되어 있어도 하나처럼 사용가능

SQL

  • 데이터베이스를 정의하고 데이터를 조작하고 추출하는데 사용하는 데이터 처리 언어

NoSQL (Not Only SQL)

SQL 로 제어되는 전통적인 RDBMS(관계형 데이터베이스 관리시스템)와 다른 DBMS(데이터베이스 관리시스템) 을 지칭하는 용어 데이터 저장에 고정된 테이블 스키마가 필요하지 않고 조인 연산을 사용할 수 없으며, 수평적으로 확장이 가능한 DBMS를 의미함

NoSQL의 특성(BASE)

  • Basically Available : 언제든지 데이터는 접근할 수 있어야 하는 속성
  • Soft-State : 노드의 상태는 외부에서 전송된 정보를 통해 결정되는 속성
  • Eventually Consistency : 일정 시간이 지나면 데이터의 일관성이 유지

복구 관련 개념

  • RTO : 목표 복구 시간
  • RPO : 목표 복구 시점