본문 바로가기

데이터분석(DataBase)/MySQL

MySQL로 배우는 데이터베이스 개론과 실습 답안 - Chapter 01

Chapter 01 데이터베이스 시스템

 

###연습문제

#01. 다음 각 용어의 의미를 설명하시오.

 

데이터베이스: 조직에 필요한 정보를 얻기 위해 논리적으로 연관된 데이터를 모아 구조적으로 통합해 놓은 것이다.

DBMS: 데이터베이스 관리 시스템. 사용자와 데이터베이스를 연결시켜주는 소프트웨어이다.

데이터 모델: 데이터베이스 시스템에서 데이터를 저장하는 이론적인 방법에 관한 것으로, 데이터베이스에 데이터가 어떻게 구조화되어 저장되는지를 결정한다.

데이터베이스 시스템: 각 조직에서 사용하던 데이터를 모아서 통합하고 공유하여 생기는 장점을 이용하는 시스템이다.

 

#02. 데이터베이스의 개념 4가지를 설명하시오.

 

데이터에 대한 통합된 데이터, 저장된 데이터, 운영 데이터, 공용 데이터를 말한다.

 

#03. 데이터베이스의 특징 네가지를 설명하시오.

 

실시간 접근성, 계속적인 변화, 동시 공유, 내용에 따른 참조 ...

 

#04. 파일 시스템과 DBMS의 데이터 접근 방법의 차이를 설명하시오.

 

파일 시스템은 데이터가 파일 단위로 저장되며 파일을 다루는 시스템이기 때문에 DBMS가 없고 파일 서버를 이용한다.

DBMS는 DBMS를 도입하여 데이터를 통합 관리하는 시스템이다.

 

#05. 파일 시스템과 DBMS의 장단점을 비교하여 설명하시오.

 

파일 시스템은 별도의 소프트웨어 설치가 필요없기 때문에 개발 과정이 단순하다. 하지만  프로그램 개발시 파일을 다루어야하는 부담이 있다. 

DBMS는 파일 시스템에 비해 텀퓨터 자원을 더 많이 사용하는 단점이 있지만, 데이터 중복, 데이터 일관성, 데이터 독립성, 관리 기능, 프로그램 생산성 등등 거의 모든 면에서 장점을 가지고 있다.

 

#06. 데이터 모델을 설명하고 종류를 나열하시오.

 

데이터베이스 시스템에서 데이터를 저장하는 이론적인 방법에 관한 것이다.

 

#07. 다음 데이터베이스 사용자들의 역할을 설명하시오.

 

일반 사용자: 응용 프로그래머가 작성한 프로그램을 이용하는 사람

응용 프로그래머: 데이터베이스를 이용해 문제를 해결하는 프로그램을 작성하는 사람

SQL 사용자: SQL 질의를 작성하거나 SQL을 이용하여 프로그램을 작성하는 사람

DBA: 데이터베이스 관리자. 조직의 데이터베이스 운영을 총괄하는 사람

 

#08. 데이터 독립성을 정의하고, 데이터베이스 시스템에서 그 중요성을 설명하시오.

 

데이터 독립성이란 하위 스키마를 변경하더라도 상위 스키마가 영향을 받지 않는 특성이다. 즉 특정 스키마가 바뀌더라도 매핑을 다시 함으로써 다른 계층의 스키마의 내용은 변하지 않아도 되는 것이다.

데이터 독립성은 데이터베이스 시스템에서 유지보수 비용, 데이터 복잡도, 데이터 중복성을 감소시키는 효과가 있다. 또한 유지보수에 대한 처리가 수월해져 요구사항에 대응을 향상 시킬 수 있다.

 

#09. ANSI의 3단계 데이터베이스 구조에 대해 설명하시오.

 

외부 단계(external level)

3단계 구조 중 제일 개념화가 많이 되어 있는 외부 단계는 데이터베이스를 개별 사용자 관점에서 이해하고 표현한다. 외부 단계에서는 개별 사용자가 데이터베이스를 어떻게 보는가를 표현하므로 사용자마다 생각하는 데이터베이스의 구조가 다르다. 이와 같이 외부 단계에서 사용자에게 필요한 데이터베이스를 정의한 것을 외부 스키마(external schema)라 한다. 외부 스키마는 각 사용자가 생각하는 데이터베이스의 모습을 표현한 논리적인 구조로, 사용자마다 다르다.

데이터베이스 하나에 외부 스키마가 여러 개 존재할 수 있으며, 사용 목적이 같은 사용자들은 외부 스키마 하나를 공유 할 수 있다. 외부 스키마는 전체 데이터베이스 중 사용자가 관심을 가지는 일부분으로 볼 수 있어 서브 스키마(sub schema)라고도 한다.

 

 

개념 단계(conceptual level)

개념 단계는 데이터베이스를 이용하는 사용자들의 관점을 통합해 조직 전체의 관점에서 이해하고 표현한다. 데이터베이스 관리 시스템이나 데이터베이스 관리자는 데이터베이스의 일부분이 아닌 전체에 관심을 둔다. 따라서 개념 단계에서는 이 같은 데이터베이스 관리 시스템이나 관리자의 관점에서 모든 사용자에게 필요한 데이터를 통합하여 전체 데이터베이스의 논리적 구조를 정의하는데, 이를 개념 스키마(conceptual schema)라 한다.

개념 스키마는 조직 전체의 관점에서 생각하는 데이터베이스의 모습이다. 전체 데이터베이스에 어떤 데이터가 저장되는지, 데이터들 간에는 어떤 관계가 존재하고 어떤 제약조건이 있는지에 대한 정의뿐만 아니라, 데이터에 대한 보안 정책이나 접근 권한에 대한 정의도 포함한다. 하지만 데이터를 물리적으로 저장하는 방법이나 데이터 저장 장치와는 독립적이다.

데이터베이스 하나에는 개념 스키마 하나만 존재한다. 개념 스키마의 일부분을 사용자의 이용 목적에 맞게 사용하는 것이 외부 스키마이다. 일반적으로 스키마라고 하면 개념 스키마를 의미한다.

 

 

내부 단계(internal level)

내부 단계는 데이터베이스를 저장 장치의 관점에서 이해하고 표현한다. 즉, 내부 단계는 전체 데이터베이스가 디스크와 테이프 같은 저장 장치에 실제로 저장되는 방법을 정의하는데, 이를 내부 스키마(internal schema)라 한다.

데이터베이스는 저장 장치에 파일 형태로 저장되는데 내부 스키마는 파일에 데이터를 저장하는 레코드의 구조, 레코드를 구성하는 필드의 크기, 인덱스를 이용한 레코드 접근 경로 등을 정의한다. 내부 스키마 역시 데이터베이스 하나에 내부 스키마 하나만 존재한다.

 

#10. 다음 데이터베이스 시스템의 수성도를 보고, 빈 곳에 알맞는 용어를 써놓으시오.

 

(그림 생략, 위에서부터 순서대로)

SQL 사용자, SQL 질의, DBMS, DDL 컴파일러, 파일 관리자, 인덱스

 

 

### 심화문제

 

#11. 클라이언트/서버 구조를 설명하고, 2-tier, 3-tier 개념을 인터넷에서 찾아보시오.

 

클라이언트 서버 모델(client–server model)은 서비스 요청자인 클라이언트와 서비스 자원의 제공자인 서버 간에 작업을 분리해주는 분산 어플리케이션 구조이자 네트워크 아키텍처이다.

 

2-Tier와 3-Tier를 분류하고자 하는 구분은 크게 H/W관점과 S/W 관점에서 나눌 수 있다.

S/W 관점에서 보면, 1장에서 설명한 미들웨어 중에서 데이터베이스 미들웨어를 사용한 아키텍쳐를 '2-Tier', 그 외의 미들웨어를 사용하면 '3-Tier' 아키텍쳐라고 정의한다.

 

2-tier

  • 클라이언트 <-> 서버
  • 클라이언트가 직접 서버의 DB에 접속하여 자원을 활용하는 티어이다.
  • 편리하지만 보안에 취약하고, 유지보수도 어렵다는 단점이 있다.

3-tier

  • 클라이언트 <-> 서버/애플리케이션 <-> DB
  • 직접 데이터베이스에 접근하지 않고, 미들웨어 클라이언트와 서버 모듈을 통해 데이터베이스를 접근 함. 
  • 비즈니스 로직은 서버측의 미들웨어 기반 위에 수행 되고 관리가 된다.

 

 

#12. 우리나라의 공공 데이터베이스 구축 현황을 공공데이터포털에서 확인해보시오. 세 개 이상의 데이터베이스를 찾아보고, 내용을 설명하시오. 

 

공공데이터포털 링크 첨부!

 

#13. 주요 DBMS 제조사(오라클, IBM..)의 국내 시장 점유율을 인터넷에서 찾아보시오.

 

2016년 기준 

- 오라클 45.6%

- 마이크로소프트 19.1%

- IBM 15.7%

- SAP 9.6%

- 기타 10%

 

#14. 위키피디아에서 "database"키워드를 입력하여 데이터베이스의 정의, 역사, 기술 동향을 찾아보시오.

 

위키피디아 링크 첨부!

 

#15. 데이터베이스 전문가가 되기 위한 자격증에서는 DBMS별 자격증과 일반 자격증이 있다. 각각 어떤 것들이 있는지 설명하시오. 

 

(생략)

 

반응형