개념 한 쪽
프로그래밍기능사 데이터 무결성 — 데이터베이스 구조와 CPU 제어 워드
데이터베이스의 데이터는 테이블·레코드·필드의 포함 관계로 조직된다. 컴퓨터가 이 데이터를 처리하려면 CPU 내부의 여러 레지스터와 입출력 채널이 각자 맡은 역할을 나눠 수행한다. 범위 관계와 장치별 역할을 구분하는 것이 이 단원의 핵심이다.
이 개념을 문제로 확인하고 싶으면 이 개념 문제 10개 풀기 회원용
가입 없이 오늘의 10문제 바로 풀기 →
뜻
데이터베이스에서 데이터는 계층적으로 조직된다. 가장 큰 단위는 테이블이고, 테이블은 여러 개의 행과 열로 이루어진다. 각 행은 하나의 레코드이며 특정 개체나 사건에 대한 전체 정보를 담는다. 각 열은 필드이며 레코드 안의 개별 속성을 나타낸다. 따라서 범위는 테이블이 가장 크고 그 안에 레코드가 있으며 레코드 안에 필드가 있다.
컴퓨터가 데이터를 다루려면 입출력 장치를 제어하는 통로가 필요하다. Selector Channel은 한 번에 하나의 장치만 처리한다. Multiplexer Channel은 여러 장치를 하나의 채널로 묶어 동시에 처리하도록 설계된 방식이다. 여러 장치가 동시에 데이터를 주고받을 수 있어 효율이 높아진다.
CPU 안에는 상태와 연산을 담당하는 레지스터가 있다. PSW는 실행 중인 CPU의 상태와 제어 정보를 포함하는 제어 워드다. 누산기는 연산기에서 산술·논리 연산을 한 결과를 일시적으로 저장하는 레지스터다. 명령어 레지스터는 제어부가 해독할 명령을 담아 두는 곳으로서, 지금 수행 중인 명령을 보관한다.
레지스터마다 담는 정보가 다르다. 프로그램 카운터는 다음에 실행할 명령어의 주소를, 메모리 주소 레지스터는 주소 정보를, 메모리 버퍼 레지스터는 데이터 자체를 보관한다. 명령을 처리하는 주기도 나뉜다. 기억장치에서 명령을 가져오는 주기를 Fetch Cycle이라 하고, 그 뒤에 해독과 실행이 이어진다.
프로그램을 메모리에 올리는 일도 별도의 체계를 가진다. 재배치 로더는 기억 장소를 할당하고 기호적 이름을 실제 주소로 연결하며 기계어 명령을 적재한다. 원시 프로그램을 읽어 명령어를 해석하고 실행하는 일은 CPU의 역할이지 로더의 역할이 아니다.
예제
데이터베이스 구조 문제는 포함 관계를 뒤집어 놓는다. 필드가 레코드보다 범위가 크다고 하거나 테이블이 필드 안에 있다고 하면 틀린다. 테이블은 레코드의 집합이고 레코드는 필드의 집합이므로 테이블 > 레코드 > 필드의 순서가 성립한다.
레지스터 문제는 담는 정보를 바꿔 놓는다. 지금 수행 중인 명령을 보관하는 곳을 프로그램 카운터로, 다음 명령어 주소를 기억하는 곳을 명령어 레지스터로 바꾸면 틀린다. 연산 결과를 일시 저장하는 레지스터를 묻는 문항에서 명령어 해독이나 순서 기억을 고르는 선지도 함정이다. 로더의 역할을 묻는 문항에서는 명령어 해석을 로더의 기능으로 넣어 두는데, 해석과 실행은 CPU가 맡는다.
자주 묻는 물음
- 데이터베이스에서 범위가 가장 넓은 단위는 무엇인가?
- 테이블이다. 테이블은 레코드의 집합이고 레코드는 필드의 집합이므로 테이블 > 레코드 > 필드의 포함 관계가 성립한다.
- 여러 입출력 장치를 동시에 처리하도록 설계된 채널은 무엇인가?
- Multiplexer Channel이다. 여러 장치를 하나의 채널로 묶어 동시에 처리하며, Selector Channel은 한 번에 하나의 장치만 처리한다.
- 지금 수행 중인 명령을 보관하는 레지스터는 무엇인가?
- 명령어 레지스터다. 프로그램 카운터는 다음 명령어의 주소를, 메모리 버퍼 레지스터는 데이터를 보관한다.
프로그래밍기능사 풀이 세트에서 이 개념의 문제 10개를 바로 풀어 보세요.