트랜잭션이란 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위, 일련의 연산을 의미한다. - 하나의 트랜잭션은 Commit되거나 Rollback된다. - Commit : 트랜잭션이 행한 연산이 완료된 것을 관리자에게 알리는 연산 - Rollback : 하나의 트랜잭션이 비정상 종료됐을 때, 일부가 정상적으로 처리됐더라도 트랜잭션의 원자성을 구현하기 위해 모든 연산을 취소시키는 연산 트랜잭션의 특성 원자성 (Atomiciry) - 트랜잭션의 연산은 데이터베이스에 모두 반영되든지, 전혀 반영되지 않아야 함 - 트랜잭션 내의 모든 명령은 완벽히 수행되어야 함 - 어느 하나라도 에러가 발생하면 트랜잭션의 전부가 취소되어야 함 (롤백) 일관성 (Consistency) - 트랜잭션이 ..
데이터베이스 병행제어(Concurrency Control) 병행제어란 다중 프로그램의 이점을 활용해, 동시에 여러 트랜잭션을 병행 수행할 때, 동시에 실행되는 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록 트랜잭션 간의 상호작용을 제어하는 것을 말한다. 데이터베이스 병행제어 문제점 이러한 병행제어에는 아래와 같은 문제점이 있다. 갱신분실 (Lost Update) - 갱신 결과의 일부가 없어짐 비완료 의존성 (Uncommitted Dependency) 하나의 트랜잭션 수행이 실패하고 회복되기 전 다른 트랜잭션이 참조하는 현상 모순성 (Inconsistency) 두 트랜잭션이 병행 수행될 때, 원치 않는 자료를 이용함으로써 발생 연쇄복귀 (Cascading Rollback) 병행 수행되던 트랜잭션들 중..
데이터베이스 뷰(View)란? 뷰는 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 가상 테이블을 말한다. 뷰 이름을 질의어에서 활용할 경우 질의어가 실행될 때 뷰에 정의된 기본테이블로 대체되어 기본 테이블에 대해 실행되게 된다. - 뷰는 임시적인 작업을 위한 용도로 활용됨 - 뷰는 사용상의 편의성을 최대화함 데이터베이스 뷰의 특징 - 기본 테이블에서 유도된 테이블이기 때문에 기본 테이블과 구조가 같음 - 가상 테이블로 물리적으로 구현되어 있지 않음 - 데이터의 논리적 독립성을 제공함 - 필요한 데이터만 뷰로 정의해 처리 가능하기 때문에 관리가 용이함 - 뷰에 나타나지 않은 데이터를 안전하게 보호 가능 - 기본 테이블의 기본키를 포함한 속성 집합으로 뷰를 ..
오버로딩(Overloading)이란? 오버로딩이란 같은 이름의 메소드를 여러개 정의하면서 매개변수의 유형과 개수가 다르게 하는 것을 말한다. 오버라이딩(Overriding)이란? 상위 클래스의 메소드를 하위클래스에서 재정의해서 사용하는 것을 말한다. 오버로딩, 오버라이딩 관련 기출문제 그냥 정의만 봐서는 이해가 잘 가지 않으니 예제문을 하나 봐보자. 9급 전산직 기출 문제 중 하나로 Java 프로그램의 출력 결과를 묻고있다. 여기서 오버라이딩이 될 수 있는 조건을 먼저 알아야 하는데, 오버라이딩이 되기 위해선 시그니처(반환형, 메소드명, 인자개수/형)이 같아야 한다. 그런데 func2의 경우 반환형이 int/double로 불일치한다. 따라서 오버라이딩이 되지 않았기 때문에 재정의한 메소드 대신 부모클래스..
프로세의 정의 프로세스는 일반적으로 프로세서에 의해 처리되는 사용자 프로그램, 즉 실행중인 프로그램을 말한다. 프로세스 상태전이 프로세스 상태전이는 프로세스가 시스템 내에 존재하는 동안 프로세스의 상태가 변하는 것을 의미한다. 먼저 프로세스의 상태에는 다음과 같은 것들이 있다. 원래 정보보안기사에서 접했던 상태전이 관련 용어와 약간의 차이가 있는데 익숙한 것으로 정리하겠다. - 보류상태 (pending) : 작업이 일시중지됐거나 디스크에 수록된 상태 - 준비상태 (ready) : CPU를 할당받을 수 있는 상태로 CPU가 자신을 처리해주기를 기다리고 있는 상태 - 실행상태 (running) : 프로세스가 CPU를 차지하고 있는 상태 - 대기상태 (blocked) : 프로세스가 CPU를 차지하고 실행되다가..
화이트박스 테스트 (White Box Test) 화이트박스 테스트는 모듈의 원시 코드를 오픈시킨 상태에서 코드의 논리적 모든 경로를 테스트하는 방법이다. 화이트박스 테스트 종류 화이트박스 테스트 종류에는 기초 경로 검사, 제어 구조 검사 등이 있다. 기초 경로 검사 - Tom McCabe가 제안한 대표적 화이트박스 테스트 기법 - 테스트케이스 설계자가 절차적 설계의 논리적 복잡성을 측정할 수 있게 함 - 측정 결과는 실행 경로의 기초를 정의하는데 지침으로 사용됨 제어 구조 검사 - 조건검사 (Condition Testing) - 루프 검사 (Loop Testing) - 데이터 흐름 검사 (Data Flow Testing) 블랙박스 테스트 (Black Box Test) 블랙박스 테스트는 소프트웨어가 수행할..
데이터베이스 정규화 부분은 예제 없이 글로만은 이해하기가 힘들어서 구글링을 많이 했다. 출처는 본문 중간중간에 적혀있다. 데이터베이스 정규화(Normalization)란? 정규화란 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어가는 과정이다. 바람직한 스키마로 만들어간다는 것은 데이터베이스 설계를 논리적으로 재구성한다는 것으로 이해하면 된다. 이렇게 정규화를 수행하면 불필요한 데이터를 없애거나 삽입/삭제 등의 쿼리 수행 시 발생할 수 있는 각종 이상현상을 방지할 수 있다. - 하나의 종속성이 하나의 릴레이션에 표현될 수 있도록 분해해가는 과정 - 제1정규형, 제2정규형, 제3정규형, BCNF형, 제4정규형,제5정규형이 있음 - 차수가 높아질수록 만족시켜야 할 제약조건이..
키(Key)의 개념 및 종류 - 데이터베이스에서 튜플들을 서로 구분할 수있는 기준이 되는 애트리뷰트를 말함 후보키(Candidate Key) - 릴레이션을 구성하는 속성들 중 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합 - 즉, 기본키로 사용할 수 있는 속성들을 말함 - 모든 릴레이션은 반드시 하나 이상의 후보키를 가져야 함 - 모든 튜플들에 대해 유일성, 최소성을 만족해야 함 릴레이션에서 학번, 주민번호 기본키(Primary Key) - 후보키 중에서 선택한 주키로 NULL 값이 될 수 없음 - 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성 - 기본키로 저장된 속성에는 동일한 값이 중복되어 저장될 수 없음 릴레이션에서 학번이나 주민번호, 릴레이션에서는 '학번+과목명' 조합 대체..
관계형 데이터베이스 개요 - 관계형 데이터베이스를 구성하는 개체나 관계를 모두 릴레이션이라는 표로 표현함 - 장점 : 간결, 보기 편리, 다른 데이터베이스로의 변환 용이 - 단점 : 성능이 떨어짐 관계형 데이터베이스의 Relation 구조 - 릴레이션 : 데이터들을 표 형태로 표현한 것 - 릴레이션 스키마 : 구조를 나타내는 릴레이션 - 릴레이션 인스턴스 : 실제 값들 튜플 (Tuple) - 릴레이션을 구성하는 각각의 행 - 속성의 모임으로 구성됨 - 파일 구조에서 레코드와 같은 의미 - 튜플의 수 = 카디널리티(Cardinality) = 기수 = 대응수 속성 (Attribute) - 릴레이션을 구성하는 각각의 열 - 가장 작은 논리적 단위 - 파일 구조에서 데이터 필드에 해당 - 개체의 특성을 기술 도..
관계형 데이터베이스의 관계대수 - 관계형 데이터베이스에서 원하는 정보를 얻기 위해 어떻게 유도하는가를 기술하는 절차적 언어 - 관계대수에는 순수 관계 연산자와 수학적 집합 이론에서 사용하는 일반 집합 연산자가 존재 순수 관계 연산자 : Select, Project, Join, Division 일반 집합 연산자 : UNION(합집합), INTERSECTION(교집합), DIFFERENCE(차집합), CARTESIAN PRODUCT(교차곱) 순수 관계 연산자 Select - 선택 조건을 만족하는 튜플의 부분집합을 구해 새로운 릴레이션을 만드는 연산 - 행에 해당하는 튜플을 구하는 것으로 수평 연산이라고도 함 표기 형식 : σ(R) Project - 속성 리스트에 제시된 속성 값만을 추출해 새로운 릴레이션을 ..
시나공 기준 개정된 2020 정보처리기사에서는 E-R 다이어그램 표기법에서 정보 공학 표기법이나 바커 표기법 등의 표기법이 추가되었다. E-R (Entity-Relationship, 개체-관계) 모델의 개요 - 개념적 데이터 모델의 대표적인 모델 - 피터 첸에 의해 제안됨 - 개체와 개체 간의 관계를 개념적인 논리 데이터로 표현하기 위한 방법 - 데이터를 개체(Entity), 관계(Relationship), 속성(Attribute)로 묘사함 - E-R 다이어그램으로 표현하며 1:1, 1:N, N:M 등 관계 유형을 제한없이 나타낼 수 있음 E-R 다이어그램 - E-R 모델의 아이디어를 이해하기 쉽게 기호를 사용해 시각적으로 표현한 그림 - E-R 다이어그램 표기법에는 피터 첸 표기법, 정보 공학 표기법,..
시나공 기준 개정된 2020 정보처리기사에서는 이전과 달리 모듈 부분에 결합도와 응집도는 똑같지만 팬인/팬아웃이 추가되었다. 모듈 (Module) 개요 - 모듈은 모듈화를 통해 분리된 시스템의 각 기능들을 의미 - 모듈은 단독으로 컴파일이 가능, 재사용 가능 - 모듈의 독립성은 결합도와 응집도에 의해 측정됨 - 독립성을 높이려면 결합도는 약하게, 응집도는 강하게, 모듈의 크기는 작게 만들어야 함 * 모듈화 : 소프트웨어 성능 향상이나 수정 및 재사용 등이 용이하도록 시스템의 기능들을 모듈 단위로 분해하는 것 결합도 (Coupling) - 약할수록 좋음 - 모듈간에 상호 의존하는 정도, 두 모듈 사이의 연관 관계를 의미 - 결합도가 강하면 시스템 구현 및 유지보수가 어려움 - 결합도의 종류 : 자료 < 스..