정보처리기사 제1과목 데이터베이스 – 제1장 데이터베이스의 개념
요약 정리
Ⅰ. 정보처리시스템과 데이터베이스의 개념
1. 정보 처리 시스템(Information Processing System)
가. 데이터(Data)와 정보(Information)
- 데이터(Data): 현실 세계로부터 단순한 관찰이나 측정을 통해 수집된 사실이나 값을 말한다.
- 정보(Information): 데이터(Data)를 가공 처리하여 얻어진 지식을 말한다.
- Process(Data) = Information
나. 자료 처리 시스템(Data Processing System)
– 자료 처리 시스템(Data Processing System)의 정의
컴퓨터 및 관련 요원을 포함하는 시스템으로, 자료에 대한 일련의 조작을 하기 위해 입력, 처리, 기억, 출력, 제어의 모든 기능을 수행하는 것을 말한다.
– 자료 처리 시스템(Data Processing System)의 종류
- 일괄 처리(Batch Processing)
- 트랜잭션(Transaction) 당 처리 비용이 저렴.
- 시스템을 효율적으로 운영.
- 높은 시스템 성능 요구.
- 사전 작업에 많은 시간이 요구.
- 결과가 나올 때까지 많은 시간이 걸림.
- 온라인 실시간 처리(On-Line Real Time Processing)
- 사용자 중심 처리 방식.
- 구축 비용이 많이 들고 구조가 복잡.
- 트랜잭션(Transaction) 당 처리 비용이 높음.
- 유지 보수나 회복이 복잡.
- 작업량이 많자 않을 경우 시스템 사용 효율이 떨어짐.
- 분산 처리(Distributed Processing)
– 데이터 웨어하우스(Data Warehouse)
기간 업무 시스템에서 추출되어 새롭게 생성된 데이터베이스로서 의사 결정 지원 시스템을 지원하는 주체적, 통합적, 시간적 데이터의 집합체를 말한다.
2. 데이터베이스(Database)의 개념
가. 데이터베이스(Database)의 정의
– 공유 데이터.
– 통합 데이터.
– 운영 데이터.
– 저장 데이터.
나. 데이터베이스(Database)의 특징
– 중복 최소화.
– 계속적인 변화.
– 실시간 접근.
– 동시 공유.
– 내용에 따른 접근.
– 뛰어난 자료의 연계성.
다. 데이터베이스(Database)의 구성 요소
① 개체(Entity)
개체(Entity): 현실 세계의 유무형의 대상체를 추상화하여 표현하는 단위로 파일에서 레코드(Record)에 대응하는 개념으로 독립적으로 존재하며 식별 가능해야 한다.
속성(Attribute): 데이터베이스를 구축하는 가장 작은 논리적 단위로 파일 시스템의 필드(Field)에 해당한다. 자체만으로는 정보(Information)를 표현할 수 없고 정보를 표현하는 단위인 개체(Entity)나 관계(Relationship)의 특성이나 특징을 설명하는 도구로 사용된다.
개체 타입(Entity Type): 개체 스키마(Entity Schema)라고도 하며 개체 이름과 이 개체의 특성이나 특징으로 표현된 속성(Attribute)들로 구성하여 만든 논리적인 정의. 즉 설계에 해당하는 개념이다.
개체 어커린스(Entity Occurrence): 개체 인스턴스(Entity Instance)라고도 하며 개체 타입(Entity Type)의 연산에 의해 실제적인 개체 값이 들어가 있는 상태를 말한다.
개체 집합(Entity Set): 개체 어커런스(Entity Occurrence)들의 집합을 말한다.
② 관계(Relationship)
속성 관계(Attribute Relationship): 개체(Entity)를 구성하고 있는 속성(Attribute)과 속성(Attribute) 사이의 관계, 개체 내 관계(Intra-Entity Attribute)라고도 한다.
개체 관계(Entity Relationship): 개체(Entity)와 개체(Entity) 사이의 관계, 개체 간 관계(Inter-Entity Relationship)라고도 한다.
라. 데이터베이스(Database)의 구조
논리적 구조: 사용자가 생각하는 데이터베이스(Database)의 논리적 표현.
물리적 구조: 디스크나 테이프와 같은 저장 장치 위에 물리적으로 저장되어 있는 데이터의 실제 구조.
Ⅱ. DBMS의 기능
1. 데이터베이스 관리 시스템(DBMS)의 정의
데이터베이스를 구성하고 이를 응용하기 위하여 구성된 소프트웨어 시스템. 사용자나 응용 프로그램이 데이터베이스(Database)를 쉽게 이용할 수 있도록 해준다. 그 기능은 크게 정의 기능(Definition Facility), 조작 기능(Manipulation Facility), 제어 기능(Control Facility)으로 나눌 수 있다.
2. 데이터베이스 관리 시스템(DBMS)의 필수 기능
가. 정의 기능(Definition Facility)
– 응용 프로그램과 데이터베이스 사이의 인터페이스 제공 기능.
– 데이터베이스 구조 정의 기능 즉, 데이터의 논리적 구성이나 특성 정의 기능, 데이터의 물리적 구성 원칙 정의 기능, 물리적 구성과 논리적 구성 상이의 접속 사상(Mapping) 정의 기능.
나. 조작 기능(Manipulation Facility)
– 사용자와 데이터베이스 사이의 인터페이스 제공 기능.
– 삽입(Insert), 삭제(Delete), 갱신(Update), 검색(Select) 기능.
다. 제어 기능(Control Facility)
– 데이터베이스의 내용이 일관성을 유지하고 중복되지 않도록 하며, 허가되지 않은 접근을 제한하여 자료를 보호하는 기능.
– 보안(Security), 무결성(Integrity), 병행 수행(Concurrency) 기능.
3. 데이터베이스 관리 시스템(DBMS)의 장단점
– 장점
- 중복 최소화.
- 데이터 공유.
- 일관성 유지.
- 무결성 유지.
- 표준화.
- 보안 보장.
- 통합적 관리.
– 단점
- 많은 운영비: 고속 CPU, 대용량의 주기억장치 등.
- 자료 처리 방법의 복잡: 데이터베이스에 내포된 다양한 관계의 데이터 처리 방법이 복잡해져 전문화된 고급 프로그래머를 요구하게 된다.
- 복잡한 예비(Backup)와 회복(Recovery): DBMS가 고장 나면 전체 시스템에 영향을 주게 되고, 이에 대한 백업(Backup) 및 복구대책 수립이 쉽지 않다.
- 시스템의 취약성
4. 데이터베이스(Database)의 독립성
- 논리적 데이터 독립성: 응용 프로그램에 영향을 주지 않고, 데이터베이스의 논리적 구조를 변경시킬 수 있는 것을 말한다.
- 물리적 데이터 독립성: 응용 프로그램이나 데이터베이스의 논리적 구조에 영향을 주지 않고, 데이터의 물리적 구조를 변경할 수 있는 것을 말한다.
Ⅲ. 데이터베이스 시스템의 구성
1. 3단계 데이터베이스(Database)
가. 스키마(Schema)의 정의
데이터베이스(Database)의 전체적인 논리적 설계를 의미하는 것으로 데이터 개체, 이들간의 성질, 이들간의 관계, 데이터 관계들이 갖고 있는 제약 조건에 관한 정의를 총칭한다.
나. 3단계 데이터베이스(Database)
– 외부 단계(External Level) = 외부 스키마(External Schema)
- 전체의 일부분을 표현.
- 데이터베이스의 사용자나 응용 프로그래머가 접근하는 데이터베이스를 정의한 것. 각 사용자 그룹이 관심을 갖는 데이터 부분만을 정의한 것을 말한다.
- 각 사용자 그룹을 위해 만들어져야 하므로 여러 개가 존재할 수 있다.
– 개념 단계(Conceptual Level) = 개념 스키마(Conceptual Schema)
- 하나의 기관 전체를 표현.
- 데이터 객체, 이들의 성질, 이들 간의 관계, 데이터 관계들이 갖는 제약 조건에 관한 정의를 총칭한다.
- 단순히 스키마(Schema)라고 하면 개념 스키마(Conceptual Schema)를 가리킨다.
– 내부 단계(Internal Level) = 내부 스키마(Internal Schema)
- 저장 형태의 표현.
- 저장될 내부 레코드(Record)의 형식, 인덱스(Index)의 유무, 내부 레코드(Record)의 물리적 순서 등을 명시한다.
2. 데이터베이스 언어(Database Language)
가. 데이터 정의어(DDL, Data Definition Language)
– 데이터베이스 구조를 생성(Create)하거나 변경(Alter), 삭제(Drop) 하는데 사용되는 언어.
– 스키마(Schema)를 정의하는 언어로 DBA가 사용.
– 메타 데이터(Meta Data) 형태로 데이터 사전(Data Dictionary)이라는 특별한 파일에 기록.
나. 데이터 조작어(DML, Data manipulation Language)
– 구축된 데이터를 조작하는데 사용되는 언어.
– 사용자와 데이터베이스 사이의 인터페이스를 제공하는 언어.
– 데이터베이스에 접근해서 검색(Select), 삽입(Insert), 삭제(Delete), 갱신(Update) 하는데 사용되는 언어.
다. 데이터 제어어(DCL, Data Control Language)
– 데이터베이스의 제어를 정의하고 기술하는데 사용되는 언어.
– 내부적으로 여러 가지 규정이나 제약 조건 등을 기술하기 위해 사용되는 언어로 DBA가 사용하며 보안(Security), 무결성(Integrity), 회복(Recovery), 병행 수행(Concurrency)을 수행한다.
3. 데이터베이스 시스템(Database System) 사용자
가. DBA(Database Administrator)의 역할
① 데이터베이스(Database) 설계와 운영
– 데이터베이스(Database)의 구성 요소 결정.
– 데이터 사전(Data Dictionary) 작성.
– 스키마(Schema) 정의.
– 보안 정책 수립.
– 데이터베이스(Database) 재구성.
– 예비(Backup)와 회복(Recovery) 절차 마련
– 무결성 제약 조건 지정.
– 저장 구조와 액세스 방법 정의.
– 데이터 유효성 검사 방법 수립.
② 행정 관리
– 시스템 문서화의 표준화.
– 사용자의 요구와 불평 해소.
③ 시스템 관리
– 시스템의 성능 감시 감독.
– 사용자와의 대화를 통한 개선점 모색.
– 운영 스케줄 작성.
나. 응용 프로그래머(Application Programmer)의 역할
– 데이터베이스 조작어(DML)를 호스트 언어(C, COBOL 등)에 포함하여 데이터베이스에 접근.
– 응용 프로그램 개발.
다. 일반 사용자(End User)의 역할
– 질의어(QL)를 가지고 데이터베이스(Database)에 있는 자원을 활용할 목적으로 접근.
끝
참고 자료
正益社 – 전산학 개론
한올출판사 – C언어로 구성한 자료구조
가메출판사 – 정보처리기사 필기 7년간 기출문제 총정리
정보통신용어사전