* 공부 정리일자 (2022년 8월 ~ 12월)
- 책 : 데이터베이스 배움터 (ORACLE을 기반으로 하는) 연습문제 (일부)
- 개인적으로 공부 및 복습하면서 정리한 내용입니다. (사진 제외)
1. 복습 (중요 키워드 위주)
* 복습 파트 : 1강.
* 데이터베이스 개념 마인드맵 정리
2. 연습문제
1) 연습 문제 1번
다음 용어들을 간략히 설명하라
데이터, 데이터베이스, DBMS, 데이터베이스 시스템,
내포, 외연, 데이터베이스 관리자, 시스템 카탈로그, 기작성 트랜잭션, 데이터 독립성
(1) 데이터
컴퓨터가 처리할 수 있는 문자, 숫자, 소리, 그림 따위의 형태로 된 정보.
(2) 데이터베이스
데이터베이스는
조직체의 응용 시스템들이 공유해서 사용하는 운영 데이터 (operational data)들이 구조적으로 통합된 모임이다.
데이터베이스의 구조는 사용되는 데이터 모델에 의해 결정된다.
(3) DBMS
* 데이터베이스 관리 시스템 (DBMS: Database Management System)
- 데이터베이스를 정의하고, 질의어를 지원하고, 리포트를 생성하는 등의 작업을 수행하는 시스템 소프트웨어.
(4) 데이터베이스 시스템
- 데이터베이스 시스템(DBS: Database System), 데이터를 통합과 공유할 수 있는 시스템
(5) 내포
* 데이터베이스 스키마 (schema)
- 전체적인 데이터베이스 구조를 뜻하며 자주 변경되지는 않음
- 데이터베이스의 모든 가능한 상태를 미리 정의
- 내포(intension)라고 부름
(6) 외연
* 데이터베이스 상태
- 특정 시점의 데이터베이스의 내용을 의미하며,
시간이 지남에 따라 계속해서 바뀜
- 외연(extension)이라고 부름
(7) 데이터베이스 관리자
- 데이터베이스 관리자 (DBA: Database Administrator)
- 데이터베이스 관리자는 조직의 여러 부분의 상이한 요구를 만족시키기 위해서
일관성 있는 데이터베이스 스키마를 생성하고 유지하는 사람(팀)
(8) 시스템 카탈로그
* 데이터베이스
- 조직체의 응용 시스템들이 공유해서 사용하는 운영 데이터들이 구조적으로 통합된 모임
- 시스템 카탈로그(또는 데이터 사전)와 저장된 데이터베이스로 구분할 수 있음
-- 시스템 카탈로그(system catalog)는 저장된 데이터베이스의 스키마 정보를 유지
(9) 기작성 트랜잭션
* 응용 프로그래머
- 데이터베이스 위에서 특정 응용(예, 고객 관리, 인사 관리, 재고 관리 등)이나 인터페이스를 구현하는 사람
- 고급 프로그래밍 언어인 C, 코볼 등으로 응용 프로그램을 개발하면서
데이터베이스를 접근하는 부분은 내포된 데이터 조작어를 사용
- 이들이 작성한 프로그램은 최종 사용자들이 반복해서 수행하므로 기작성 트랜잭션(canned transaction)이라 부름
(10) 데이터 독립성
- 상위 단계의 스키마 정의에 영향을 주지 않으면서
어떤 단계의 스키마 정의를 변경할 수 있음을 의미
* 논리적인 데이터 독립성 (logical data independence)
- 개념 스키마의 변화로부터 외부 스키마가 영향을 받지 않음을 의미
- 기존의 외부 스키마에 영향을 미치지 않고,
응용 프로그램을 다시 작성할 필요 없이 개념 스키마에 대한 변화가 가능해야 함
* 물리적인 데이터 독립성 (physical data independence)
- 내부 스키마의 변화가 개념적 스키마에 영향을 미치지 않으며,
따라서 외부 스키마(또는 응용 프로그램)에도 영향을 미치지 않음을 의미
- 내부 스키마의 변화의 예 : 화일의 저장 구조를 바꾸거나 인덱스를 생성 및 삭제
2) 연습 문제 9번
만일 여러분이 비디오 테이프 또는 DVD 대여점을 운영하고 있다고 가정하자.
어떤 정보를 데이터베이스에 관리해야 하는가?
1. 회원 번호 / 2. 회원 성함 / 3. 회원 상태(대출여부, OX연체) / 4. 회원 대출 번호 (대출한 비디오 테이프 고유번호)
5. 비디오 테이프 고유 번호 / 6. 회원 대출 횟수 등
3) 연습 문제 17번
화일 시스템에 비해서 DBMS가 갖는 장점과 단점을 각각 세 개씩 열거하라.
DBMS의 장점
- 중복성과 불일치가 감소됨
- 시스템을 개발하고 유지하는 비용이 감소됨
- 표준화를 시행하기가 용이
- 보안이 향상됨
- 무결성이 향상됨
- 조직체의 요구사항을 식별할 수 있음
- 다양한 유형의 고장으로부터
데이터베이스를 회복할 수 있음
- 데이터베이스의 공유와 동시 접근이 가능함
DBMS의 단점
- 추가적인 하드웨어 구입 비용이 들고,
DBMS 자체의 구입 비용도 상당히 비쌈
- 직원들의 교육 비용도 많이 소요됨
- 비밀과 프라이버시 노출 등의 단점이 존재할 수 있음
- 초기의 투자 비용이 너무 클 때,
오버헤드가 너무 클 때,
응용이 단순하고 잘 정의되었으며
변경되지 않을 것으로 예상될 때,
엄격한 실시간 처리 요구사항이 있을 때,
데이터에 대한 다수 사용자의 접근이 필요하지 않을 때는 DBMS를 사용하지 않는 것이 바람직할 수 있음.
4) 연습 문제 20번
데이터 정의어, 데이터 조작어가 무엇인가? 이들의 차이점은 무엇인가?
(1) 데이터 정의어 (DDL: Data Definition Language)
- 사용자는 데이터 정의어를 사용하여 데이터베이스 스키마를 정의
- 데이터 정의어로 명시된 문장이 입력되면
DBMS는 사용자가 정의한 스키마에 대한 명세를 시스템 카탈로그 또는 데이터 사전에 저장
(2) 데이터 조작어 (DML: Data Manipulation Language)
- 사용자는 데이터 조작어를 사용하여 데이터베이스 내의 원하는 데이터를 검색하고, 수정하고, 삽입하고, 삭제
- 절차적 언어(procedural language)와 비절차적 언어(non-procedural language)
- 관계 DBMS에서 사용되는 SQL은 대표적인 비절차적 언어
- 대부분의 데이터 조작어는 SUM, COUNT, AVG와 같은 내장 함수들을 갖고 있음
- 데이터 조작어는 단말기에서 대화식으로 입력되어 수행되거나
C, 코볼 등의 고급 프로그래밍 언어로 작성된 프로그램에 내포되어 사용됨
5) 연습 문제 22번
데이터 독립성이 무엇을 의미하는가? 왜 데이터 독립성이 DBMS를 위해 중요한가?
두 가지 종류의 데이터 독립성을 예를 들어 설명하라.
데이터 독립성
- 상위 단계의 스키마 정의에 영향을 주지 않으면서 어떤 단계의 스키마 정의를 변경할 수 있음을 의미
* 논리적인 데이터 독립성 (logical data independence)
- 개념 스키마의 변화로부터 외부 스키마가 영향을 받지 않음을 의미
- 기존의 외부 스키마에 영향을 미치지 않고,
응용 프로그램을 다시 작성할 필요 없이 개념 스키마에 대한 변화가 가능해야 함
* 물리적인 데이터 독립성 (physical data independence)
- 내부 스키마의 변화가 개념적 스키마에 영향을 미치지 않으며,
따라서 외부 스키마(또는 응용 프로그램)에도 영향을 미치지 않음을 의미
- 내부 스키마의 변화의 예 : 화일의 저장 구조를 바꾸거나 인덱스를 생성 및 삭제
6) 연습 문제 24번
DBMS의 전형적인 시스템 아키텍처를 설명하라.
(0) 데이터베이스 시스템 아키텍처* 데이터 정의어 컴파일러(DDL compiler) 모듈
- 데이터 정의어를 사용하여 테이블 생성을 요청하면
테이블을 파일 형태로 데이터베이스에 만들고, 이 테이블에 대한 명세를 시스템 카탈로그에 저장
* 질의 처리기(query processor) 모듈
- 데이터 조작어를 수행하는 최적의 방법을 찾는 모듈을 통해서 기계어 코드로 번역
* 런타임 데이터베이스 관리기(run-time database manager) 모듈
- 디스크에 저장된 데이터베이스를 접근
* 트랜잭션 관리(transaction management) 모듈
- 동시성 제어(concurrency control) 모듈
- 회복(recovery) 모듈
'프로그래밍 공부 > DataBase (DB)' 카테고리의 다른 글
[ 데이터베이스 이론 ] 공부 정리 - 6강. ER 모델 (0) | 2023.05.21 |
---|---|
[ 데이터베이스 이론 ] 공부 정리 - 5강. 데이터베이스 설계 (0) | 2023.05.21 |
[ 데이터베이스 이론 ] 공부 정리 - 4강. SQL 문제 풀기 (0) | 2023.05.19 |
[ 데이터베이스 이론 ] 공부 정리 - 4강. SQL INSERT, DELETE, UPDATE문 (0) | 2023.05.19 |
[ 데이터베이스 이론 ] 공부 정리 - 4강. SQL SELECT문 (1) | 2023.05.19 |