본문 바로가기

Programming120

[RDBMS] Transaction Isolation Level (트랜잭션 고립 수준) 목차 트랜잭션 고립 수준 종류 참고 트랜잭션 고립 수준 동일한 트랜잭션 시나리오 (입력, 작업)에도 불구하고 고립 수준에 따라 그 결과가 다를 수 있습니다. ANSI / ISO SQL 표준에서는 이와 같은 트랜잭션 고립 수준을 4가지로 분류하여 정의하고 각 고립 수준에서는 아래 3가지 현상을 허용할지 말지에 대해 정의합니다. dirty read (Uncommitted Dependency) Non-Repeatable Read (Inconsistent Analysis) Phantom Read dirty read (Uncommitted Dependency) 커밋되지 않은 데이터 (dirty data)를 읽는 것을 말합니다. 이 때문에 데이터 무결성이 깨지고, 외래 키 제약조건이 무시되는 등 여러 문제가 발생할.. 2022. 6. 24.
분할정복 알고리즘 목차 분할 정복의 원리 이진 탐색 퀵 정렬 분할 정복의 원리 분할 정복은 순환적으로 문제를 푸는 하향식 방법입니다. 분할 : 주어진 문제 (입력)를 여러 개의 문제로 작게 분할. 정복 : 분할된 작은 문제들을 순환적으로 더 이상 분할되지 않을 때까지 분할, 충분히 작다면 순환 분할을 멈추고 그 문제의 해를 구함 결합 : 작은 문제들에서 정복한 해를 결합하여 원래 문제 (입력)의 해를 구함. 이 때 분할된 작은 문제들은 원래의 문제와 입력의 크기만 다를 뿐 동일합니다. 또한 각 문제들은 서로에게 독립적입니다. 분할 정복 알고리즘의 종류 이진 탐색 합병 정렬 퀵 정렬 선택 문제 이진 탐색 정렬되어있는 배열 (입력 데이터)에서 특정 값을 찾는 탐색 방법입니다. 이 때 찾으려는 값을 탐색키라고 합니다. 순서 분.. 2022. 6. 23.
싱글톤 패턴 (Singleton pattern) 목차 싱글톤 패턴의 이해 구현 (JAVA) 디자인 패턴에서 자주 사용되는 싱글톤 패턴에 대한 필요성을 이해하고, 구현 방안의 종류를 알아봅니다. 싱글톤 패턴의 이해 싱글톤 패턴은 애플리케이션에서 불변할 객체에 대하여 한번만 초기화 (할당)해놓고 가져다 쓰도록 하는 디자인 패턴입니다. 실생활에서 예시를 들어보겠습니다. 가족 구성원이 4명이고 4명 모두 운전자라고 가정합시다. 일반적으로 가족 구성원 (사용자)만큼 자동차 (객체)를 구입하나요? 자동차 (객체)를 사용하기 위한 비용 (메모리)이 굉장히 많이 듭니다. 따라서 자동차를 한대만 구입하여 구성원이 공유하여 사용합니다. 이와 같은 원리를 애플리케이션 단에 적용하는 디자인 패턴을 싱글톤 패턴 (Singleton Pattern)이라 합니다. 애플리케이션 런.. 2022. 5. 10.
정규화 목차 정규화의 필요성 (목적) 함수적 종속성 정규화 정규화의 필요성 (목적) 아래와 같이 축구선수의 정보를 기입한 릴레이션 (테이블)이 있습니다. 만약 소속팀 속성 "맨체스터시티"의 팀명이 변경된다면 어떤 작업이 이루어져야 할까요? 변경하려는 데이터는 1개인데, 수정해야 할 레코드 수는 3개입니다. 아래와 같이 분리한다면 어떨까요? 팀 관련 테이블로 분리하고, 해당 테이블에서 관리하는 것입니다. 이와 같은 작업을 정규화라고 합니다. 정규화 목적 데이터의 일관성 유지 (무결성) 저장공간 확보 (중복 데이터 제거) 갱신 이상 해소 갱신 이상 삽입 이상 : 레코드를 추가하려고 할때, 필요치 않은 컬럼 값까지 포함하여 추가해야 하는 경우 삭제 이상 : 레코드 삭제 시 의도하지 않은 다른 컬럼의 값까지 삭제되는 .. 2022. 5. 2.
스케줄링 알고리즘 2022.02.25 - [개발/운영체제] - 프로세스 (Process) 프로세스 (Process) 목표 프로세스의 개념을 이해한다. 스레드의 등장 배경과 그 장점을 파악한다. 스케줄링 단계와 정책을 이해한다. 목차 프로세스 (Process) 스레드 (Thread) 스케줄링(scheduling) 참고 프로세스 (Process) kghworks.tistory.com 이어지는 포스팅입니다. 목차 스케줄링 성능 평가기준 스케줄링 알고리즘 스케줄링 성능 평가기준 스케줄링이란 모든 프로세스가 효율적으로 적정 수준을 유지하면서 CPU 작업을 할 수 있도록 하고 (공정성), 시스템의 자원들이 충분하게 고루 활용 (균형)될 수 있게 하는 것을 말합니다. (이전 포스팅 참고) 그러므로 스케줄링의 성능은 위 2가지(공정성,.. 2022. 4. 6.
SQL (2) - 데이터 검색, SELECT 2022.03.23 - [개발/데이터베이스 시스템] - SQL (1) - 데이터베이스 객체와 DDL, DML SQL (1) - 데이터베이스 객체와 DDL, DML 목표 데이터베이스 언어를 이해할 수 있다. 데이터베이스 정의 언어와 조작어를 이해한다. 목차 데이터베이스 언어 데이터베이스 객체와 스키마 DDL, 데이터베이스 객체 DML 데이터베이스 언어 kghworks.tistory.com 이어지는 포스팅입니다. 목차 데이터 검색 조인 질의 뷰 데이터 검색 SELECT문의 기본구조입니다. SELECT ... FROM ... WHERE ... GROUP BY ... (생략 가능) HAVING ... (생략 가능) ORDER BY .. (생략 가능) 각 절의 역할 SELECT : 결과에 포함될 컬럼을 명시 FR.. 2022. 4. 4.