2019년도 (2)학기 (데이터베이스) [진행 중]

Posted by nkjok
2019. 8. 29. 16:53 자격증관련/2019-2학기
반응형
공퓽의 트위치 방송 채널
Chu레쉬의 유튜브 채널

데이터베이스


목차


  데이터베이스 목차

  1. 데이터베이스 시스템 개요
  2. 데이터베이스 사용자
  3. 데이터베이스 관리 시스템
  4. 데이터베이스 관리 시스템 구성




-------------------------------------------------------------------------
------------------------------------------




1차시 데이터베이스 시스템 개요


데이터베이스

특정 조직의 응용 업무에 공동으로 사용 시 운영상 필요한 데이터를 중복을 최소화하여 기억장치 내에 모아 놓은 집합체이다.
(C.J.Date) 데이터의 중복없이 상호 연관되어 있어 관련된 모든 응용 환경에서 사용할 수 있는 데이터의 집합이다.
(Plamer) 작은 세계 또는 논의 세계라고 부르는 실세계의 일부분을 표현하는 하나의 주제와 관련된 의미 있는 데이터의 모음 이다.


데이터베이스 관리 시스템 (DBMS)

사용자가 데이터베이스를 생성하고 관리할 수 있도록 편리한 기능을 제공하는 프로그램의 모임이다.
다양한 응용에서 필요로 하는 데이터베이스를 정의, 생성, 조작, 공유할 수 있도록 편리한 기능을 제공하는 범용 소프트웨어 시스템이다.



데이터베이스 시스템

데이터베이스와 그것을 관리하는 소프트웨어인 데이터베이스 관리 시스템, 이 모두를 칭하는 용어이다.



Q.데이터베이스 벤더(DB vender)에는 어떤 회사들이 있으며 그들이 제공하는 데이터베이스 관리 시스템으로는 어떤 것들이 있습니까?
Oracle사의 Oracle은 비즈니스 영역에서 가장 많이 사용되고 있으며 시장 점유율에서 최고입니다.
IBM사의 DB2는 관공서, 국방, 의약 영역에서 주로 많이 사용하고 있습니다. Oracle사의 MySQL은 중소형 비즈니스 영역에서 주로 사용되며
공개 DBMS입니다. 그리고 MS사의 MS SQL Server는 Windows 플랫폼에서 주로 사용되는 DBMS입니다. 마지막으로 PostgreSQL은 유럽 제품으로
공개용 버전이 있으며 중소형 비즈니스 영역에서 사용되고 있습니다.

데이터베이스 시스템의 개요
데이터베이스 시스템(Database System)은 데이터베이스와 이것을 관리하는 소프트웨어인 데이터베이스 관리 시스템과 응용 프로그램, 이 모두를 칭하는 용어이다.
데이터베이스(Database)는 관련 있는 데이터의 모임이다.
데이터베이스 관리 시스템(Database management system; DBMS)은 데이터베이스의 생성과 관리를 담당하는 소프트웨어 패키지이다.

데이터베이스 시스템의 예
데이터베이스는 데이터 레코드, 데이터 항목, 엔티티, 관계를 정리한다.
DBMS에서 수행하는 데이터베이스 조작 기능은 질의(Query)와 갱신(Update)이다.

데이터베이스 시스템의 특징
파일 시스템의 단점은 데이터의 중복성, 데이터의 불일치, 프로그램과 데이터 간의 종속성, 제한적 정보 제공, 보안 문제가 있다.
데이터베이스 시스템의 특징은 데이터베이스 시스템의 자기기술성(Self-describing), 프로그램과 데이터의 분리 및 데이터 추상화, 데이터에 대한 다양한 뷰(View) 제공, 데이터의 공유와 다수 사용자 트랜잭션 처리 등의 특징을 가지고 있다.

상용 데이터베이스 관리 시스템 개요
Oracle사의 Oracle과 MySQL, MariaDB Foundation의 MariaDB, IBM사의 INFORMIX와 DB2, Microsoft 사의 MS SQL Server, PostgreSQL, 알티베이스의 ALTIBASE HDB, 티맥스 소프트의 티베로가 대표적인 데이터베이스 제품이다.


------------------------------------------




2차시 데이터베이스 사용자



데이터베이스 관리자(DBA)

데이터베이스 시스템의 전반적인 관리를 책임지는 사람으로 데이터베이스의 생성, 갱신, 관리, 질의를 처리하며 데이터베이스 설계자의 역할까지도 자주 수행한다.



제어된 중복성(Controlled redundancy)

질의 처리 시 2개 이상의 파일에서 데이터를 취합하여 처리하는 대신 하나의 파일에 중복된 데이터를 저장함으로써 처리 시간과 비용을 절감할 수 있으며 데이터의 불일치가 발생하지 않도록 DBMS가 제어한다.



접근통제/접근제어(Access Control)

사용자 또는 사용자그룹은 패스워드로 보호되는 계정을 부여 받아 데이터베이스를 접근할 때 사용한다. DBMS는 데이터가 접근되기 전에 지정된 접근 통제를 시행함으로써 권한이 없는 사용자의 접근을 방지한다.



Q.DBMS를 사용하는 이유가 무엇일까요?
파일시스템을 사용하는 것에 비해 중복성 제거, 접근 제어, 백업과 회복, 프로그램과 데이터의 독립성 보장, 데이터의 공유, 데이터 처리와 관리의 집중화에 의한 경비 절감 효과 등의 다양한 이점들을 얻을 수 있습니다.



데이터베이스 사용자 분류
데이터베이스 관리자(DBA)는 데이터베이스 시스템의 관리를 책임지는 사람이다.
데이터베이스 설계자는 데이터베이스의 설계를 책임지는 사람이다.
최종사용자(캐주얼, 초보, 전문 사용자)는 데이터베이스에 대하여 질의, 갱신, 보고서 작성 등을 담당하는 사람이다.
시스템 분석가 및 응용 프로그래머는 초보 사용자를 위하여 잘 정의된 기능의 응용을 설계하고 구현하는 사람이다.

DBMS의 장점
DBMS의 장점으로는 중복성의 제어, 접근 통제, 효율적 질의처리를 위한 저장 구조 제공, 백업과 회복 기능 제공, 인터페이스 제공, 무결성 제약조건의 시행 등이 있다.

데이터베이스의 발전 과정
계층 모델과 네트워크 모델 등이 60년대 중반부터 80년대까지 주류를 이루었다.
관계 데이터베이스는 70년대 소개 이후 IBM과 세계 각 대학에서 연구되고 검증되어 왔으며, 80년대에 들어서 상용 DBMS가 등장하였다.
객체지향 데이터베이스는 80년대 객체지향 프로그래밍 언어의 출현과 복합구조 객체를 저장하고 공유할 필요로 인해 객체지향 데이터베이스(object-oriented database; OODB)가 개발되었다.
월드 와이드 웹이 등장으로 웹 상에서 데이터의 교환을 허용하기 위해 웹 환경에서의 데이터베이스의 다양한 기술이 개발되었다.
그 외에도 고에너지 물리학 또는 인간 유전자 지도, x-레이나 MRI 와 같은 의학적 이미지, 비디오 클립의 저장과 검색 응용, 대량의 데이터를 분석하는 데이터 마이닝 등 다양한 응용을 위한 데이터베이스 능력이 확장되고 있다.


------------------------------------------




3차시 데이터베이스 관리 시스템



데이터 모델

현실 세계의 정보들을 컴퓨터에 표현하기 위해 단순화, 추상화하여 체계적으로 표현한 모형이다.



데이터 스키마와 데이터 인스턴스

데이터베이스에 대한 기술(메타데이터), 데이터베이스 설계 과정에서 명시하며 자주 변경되지 않는다. 어떤 특정 시점에 데이터베이스에 들어 있는 데이터의 집합이다.



데이터 정의 언어와 데이터 조작 언어

개념 스키마와 내부 스키마를 정의하는 언어이다. 데이터를 검색, 삽입, 삭제, 수정하기 위한 조작 언어, 보통 질의어(Query language)라고 불린다.



Q.데이터베이스에서 관리하는 데이터의 구조는 어떻게 표현될까요?
보통 개념적 데이터 모델 방식에 의해 표현됩니다.
엔티티, 속성, 관계의 형태로 표현되고, 여기에 추가적으로 데이터베이스 연산과 무결성 제약조건 등이 추가 됩니다.
이렇게 표현된 데이터 구조를 데이터 스키마라고 합니다.



데이터베이스 관리 시스템의 개념
클라이언트는 워크스테이션 / 개인용 컴퓨터에서 동작한다. 응용 프로그램 실행, 사용자 인터페이스를 제공한다.
서버는 데이터 저장, 접근, 탐색 등을 수행한다.


데이터 스키마와 인스턴스의 개념
데이터 모델은 현실 세계의 정보들을 컴퓨터에 표현하기 위해 단순화, 추상화하여 체계적으로 표현한 모형이다.
스키마는 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한다.
인스턴스는 어떤 특정 시점에 데이터베이스에 들어 있는 데이터이다. 데이터베이스에 갱신 연산이 수행될 때마다 새로운 다른 데이터베이스 상태를 가진다.


3-단계 스키마 아키텍처와 데이터 독립성
3-단계 스키마 아키텍처는 내부 스키마, 개념 스키마, 외부 스키마로 구분된다.
데이터 독립성은 논리적 데이터 독립성, 물리적 데이터 독립성이 있다.


데이터베이스 언어와 인터페이스
데이터 정의 언어(DDL)는 데이터베이스 구조를 구축하거나 수정할 목적으로 사용하는 언어이다.
데이터 조작 언어(DML)는 사용자로 하여금 데이터를 검색, 삽입, 삭제, 수정할 수 있게 하는 조작 언어이다.
데이터 제어 언어(DCL)은 보안 및 권한 제어, 회복 등을 하기 위한 언어이다.
인터페이스 유형에는 메뉴 기반 인터페이스, 폼 기반 인터페이스, 그래픽 사용자 인터페이스, 자연어 인터페이스, 초보자를 위한 인터페이스, 데이터베이스 관리자(DBA)를 위한 인터페이스 등이 있다.


------------------------------------------




4차시 데이터베이스 관리 시스템 구성



질의 최적화 모듈

연산들을 재배치하고, 연산들의 순서를 바꾸고, 중복이 존재하면 제거하고, 수행 시 사용할 정확한 알고리즘과 인덱스를 선택하는 기능을 수행하는 DBMS 모듈이다.



클라이언트-서버 아키텍처

서버와 클라이언트로 시스템을 구성하는 아키텍처이다. 데이터베이스 서버는 클라이언트에서 요구하는 질의의 처리와 트랜잭션 서비스를 제공한다.
데이터베이스 클라이언트는 자체적으로 데이터베이스 응용 프로그램을 수행하고, 서버에 접속하여 데이터베이스 관련 작업을 할 수 있도록 사용자 인터페이스를 제공한다.



관계 데이터베이스 관리 시스템(RDBMS)

관계 모델을 지원하는 DBMS이다. 데이터베이스를 테이블들의 모임으로 구성되어 있으며 고급 질의 언어를 제공하고 제한된 형태의 사용자 뷰를 지원한다.



Q.초기 RDBMS에는 어떤 문제점이 있었고, 어떤 방식으로 해결했나요?
데이터 레코드에 접근하기 위해 물리적 저장 공간 포인터나 레코드 위치 정보를 사용하지 않았기 때문에 상당히 속도가 느린 문제점이 있었습니다.
새로운 저장 공간 매체 기술, 인덱스 기술, 더 나은 질의 처리 기술과 질의 최적화 방법이 개발되면서 속도 성능이 향상되어, 전통적인 데이터베이스 응용을 위한 데이터베이스 시스템의 주된 형태가 되었습니다.



데이터베이스 관리 시스템의 구성
DBMS 구성 모듈은 다음과 같다.데이터 정의 언어 컴파일러(DDL Compiler)✔
질의 컴파일러(Query Compiler)✔
질의 최적화기(Query Optimizer)✔
프리컴파일러(Precompiler)✔
데이터 조작 언어 컴파일러(DML Compiler)✔
호스트 언어 컴파일러(Host Language Compiler)✔
런타임 데이터베이스 처리기(Runtime Database Processor)✔
저장 데이터 관리자(Stored Data Manager)✔



서버-클라이언트 아키텍쳐
중앙집중식 아키텍처는 하나의 시스템에 DBMS 소프트웨어, 하드웨어, 응용 프로그램, 사용자 인터페이스 소프트웨어 등 데이터베이스 관련 모든 것들을 모아 놓은 구조
2-tier 서버 클라이언트 아키텍처는 기본적으로 클라이언트-서버 아키텍처는 특정 기능을 갖는 특별한 서버를 지정한다.
3- tier 서버 클라이언트 아키텍처는 클라이언트와 데이터베이스 서버 사이에 응용 서버 또는 웹 서버를 추가한다.



데이터베이스 관리 시스템의 분류
주로 지원하는 데이터 모델에 따라 관계 모델을 지원하는 RDBMS, 객체지향 모델을 지원하는 OODBMS, 객체-관계 모델을 지원하는 ORDBMS로 분류한다.


반응형