leebaek

[데이터베이스] C1_1 | Introduction to Databases 본문

수업 정리/데이터베이스

[데이터베이스] C1_1 | Introduction to Databases

leebaek 2024. 3. 19. 16:09

1. Database System

□ 데이터베이스 기술은 정보를 수집하고 분석하는데 사용된다.

정보데이터는 서로 다르다.

 

 데이터 베이스의 정의

: 구조적으로 통합공유될 수 있는 운영 데이터로, 조직의 응용 프로그램 시스템에서 사용된다.

데이터 베이스 구조는 적용된 데이터 모델에 따라 결정된다.

 

□ 데이터 베이스의 특징

- 대규모 저장소가 다수의 다중 사용자로부터 동시에 사용된다.

- 중복을 최소화하면서 모든 데이터를 통합한다.

- 조직의 운영 데이터 뿐만 아니라 설명 데이터 ( database schema | metadata )도 포함한다

- 프로그램과 데이터 사이의 독립성을 제공한다.

- 효율적으로 액세스하고 쿼리를 수행할 수 있다.

 

DBMS ( Database Management System

: 데이터베이스를 정의하고, 쿼리 언어를 지원하고, 보고서를 생성하는 소프트웨어


1-1. Introduction

□ Database Schema

- 데이터 베이스의 구조를 가리키고, 자주 변경되지 않는다.

- 데이터 베이스의 가능한 모든 상태를 사전 정의 한다.

- 내포(intension)이라고 부른다.

 

□ Database State

- 특정 시간에서의 데이터 베이스의 내용을 나타내고, 이러한 내용은 시간이 지날 때마다 계속해서 바뀐다.

- 외연(extension)이라고 부른다.


□ DBS 구성 요소 | 데이터베이스, DBMS, 사용자, 하드웨어 

 

□ 데이터 베이스

- 운영 데이터를 구조적으로 통합하여 공유하고, 조직의 응용 프로그램 시스템에서 사용

- 저장된 Database와 System catalog(=Data dictionary)로 구성된다.

- System catalog는 저장된 database의 schema 정보이다.

 

□ DBMS

- 새로운 데이터베이스를 생성하고, 이것의 구조를 구체화하며, 데이터를 효율적으로 수정하고 쿼리하는 능력을  사용자에게  부여한다. 여러 사용자에 의한 동시 엑세스 접근이나 시스템 장애 및 무단 사용으로부터 데이터를 안전하게 보호한다.

- 두개 이상의 데이터베이스 특수 프로그래밍 언어를 제공한다.

- SQL은 많은 DBMS에서 제공하는 표준 데이터베이스 프로그래밍 언어이다.

 

□ 사용자

- 데이터베이스 사용자는 여러 범주로 분류될 수 있다.

 

□ 하드웨어

- 데이터베이스는 디스크 같은 보조기억장치에 저장되고, DBMS에서 원하는 정보를 찾기 위해서 주메모리에서 디스크 블록을 읽어온다.

- CPU는 연산이나 비교 작업을 할 때 사용된다.

- DBMS가 수행되기 위해 주메모리에 로드되어야 한다.

 

□ Database 요구사항

- 데이터 독립성

- 효율적인 데이터 액세스

- 데이터에 동시 액세스

- 백업 및 복구

- 중복을 줄이거나 제어하여 일관성 유지

- 데이터 무결성

- 데이터 보안

- 쉬운 커리 언어

- 다양한 사용자 인터페이스


1-2. File system VS DBMS

파일 시스템을 이용한 이전의 데이터 관리법

- 파일 시스템은 DBMS가 없던 1960년대부터 사용되어 왔다.

- 파일의  기본 구성 요소는 순차적 레코드의 집합이다.

- 레코드는 연관된 필드들의 집합이다.

- 파일 액세스 접근 방식은 애플리케이션에 상세히 설명되어 있어서, 데이터에 대한 애플리케이션의 의존도가 높다.

 

File system의 단점

- 다수의 사용자들에 대한 동시성 제어가 불가능하다.

- 쿼리 언어를 제공하지 않는다.

- 보안이 부족하다.

- 백업 기능이 없다.

- 프로그램과 데이터 간의 독립성이 없기 때문에 유지비용이 높다.

- 파일 검색이나 업데이트 절차가 상대적으로 복잡하여 프로그래머의 생산성이 낮다.

- 데이터의 공유 및 유연성이 부족하다.

 

□ DBMS를 이용한 데이터베이스 관리

- 많은 사용자와 데이터베이스를 공유한다.

- DBMS는 인덱스와 같이 쿼리를 빠르게 실행할 수 있는 경로를 자동으로 선택하여 사용자 쿼리를 수행한다.

- 허용되지 않은 사용자로부터 데이터베이스를 보호한다.

- 많은 사용자에게 적절하게 다양한 인터페이스를 제공한다.

- 데이터 간의 복잡한 관계를 나타내며, DBMS는 무결성 제약을 자동으로 유지한다.

- 시스템이 고장나도 이전의 일관된 상태로 데이터베이스를 복구한다.

- 프로그램과 데이터의 독립성 : 데이터베이스의 구조를 변경해도 프로그램에는 영향을 주지 않는다.

 

DBMS의 장점

- 중복성과 불일치를 줄인다.

- 시스템을 개발하고 유지하는 비용을 줄인다.

- 표준화가 용이하다.

- 보안이 좋다.

- 무결성이 강화된다.

- 조직의 요구사항을 식별할 수 있다.

- 다양한 실패로부터 데이터베이스를 복구할 수 있다.

- 데이터베이스를 공유할 수 있고, 동시 액세스가 가능하다.

 

DBMS의 단점

- DBMS 비용도 비싸고, 하드웨어 구매 비용도 추가된다.

- 직원 교육을 위한 비용이 든다.

 

□ DBMS 선택시 고려사항

- 기술적 요인 : DBMS에서 사용되는 데이터 모델, 인터페이스, 프로그래밍 언어, 애플리케이션 개발 도구, 저장소 구조, 성능, 액세스 접근 방식 등

 

- 재정적 요인 : 소프트웨어 및 하드웨어 구입 비용, 유지 관리 비용, 임직원교육지원 등


1-3.  Evolution of DBMS

Data Model

- set 개념의 구조(데이터 유형 및 관계)로 구성되며, 데이터 베이스 구조나 구조에서 실행되는 연산자, 무결성 제약 조건을 설명하는데 사용된다.

- 사용자간의 맵핑 뿐만 아니라 사용자로부터 내부 저장 방식을 숨기면서 데이터에 대한 직관적인 보기를 제공한다.

 

□ Data Model 종류

Conceptual data model(=High level) | 개념적 데이터 모델

- 인간이 인식하는 것과 유사하게 데이터베이스의 전체적인 논리적 구조를 지정한다.

ex. ER(entitiy-relationship) data model, 객체 지향 데이터 모델

 

Representation(implementation) data model | 표현/구현 데이터 모델

- 사용자가 이해하는 개념으로, 컴퓨터에서 데이터를 정리하는 방법과 크게 다르지 않다.

ex. 계층적 데이터 모델, 네트워크 데이터 모델, 관계형 데이터 모델 ( relationship data model )

cf) 그래프와 트리의 차이
루트 노드의 유무, 부모-자식 관계, 간선수
- 그래프는 트리이다 (X)
- 트리는 그래프이다 (O)

 

Physical data model(=Low level) | 물리적 데이터 모델

- 데이터가 데이터베이스에 저장되는 방법을 설명한다.

ex. Unifying, ISAM, VSAM 등


Hierarchical DBMS | 계층적 DBMS

- 최초의 계층적 DBMS는 1960년대 후반에 등장하였다.

( IBM 회사의 IMS : 트랜잭션 처리를 지원하는 계층적 데이터베이스 및 정보 관리 시스템 )

- 트리 구조를 기반으로 계층적 데이터 모델을 사용한 DBMS이다.

- 네트워크 데이터 모델의 특별한 경우이다.

 

 장점

- 어떤 종류의 어플리케이션에 관하여 빠른 속도와 높은 효율성을 제공한다.

 

단점

- 어플리케이션에 데이터를 액세스하는 방법을 미리 정의해야 한다.

- 데이터베이스가 생성되면 각 관계를 명시적으로 정의해야 한다.

- 레코드는 링크를 통해 연결되기 때문에 레코드 구조를 변경하기 어렵다.


Network DBMS

- 1960년 대 초, Charles Bachman이 개발한 IDS로 하니웰의 첫번째 네트워크 DBMS이다.

- 그래프 구조 기반의 네트워크 모델을 사용하기에, 레코드와 관계는 각각 노드와 엣지로 표현된다.

- 계층적 모델과 마찬가지로 레코드는 링크로 연결되어있기 때문에 레코드 구조를 변경하는 것은 어렵다.


Relational DBMS ( RDB )

- 1970년에 IBM 연구센터의 E.F Codd가 관계형 데이터 모델을 제안했다.

- IBM 연구 센터의 System R은 버클리에 있는 캘리포니아 대학교의 프로젝트 Igres

 

 장점

- 단순한 모델이기 때문에 이해하기 쉽다.

- 사용자가 원하는 것을 지정하면, DBMS데이터가 있는 위치와 데이터에 액세스 하는 방법을 결정한다. -> 논프로시저

ex. MS SQL Server, Oracle, Sybase, DB2, Informix 등


 Object-oriented DBMS | 객체 지향 DBMS

- 1980년 대 후반 새로운 데이터 모델인 객체지향 데이터 모델이 등장했다.

- 객체지향 프로그래밍 패러다임을 기반으로 한 데이터 모델

 

 장점

- 데이터와 프로그램 그룹, 이해하기 쉬운 복잡한 객체, 유지 및 수정이 간단하다.

ex. ONTOS, OpenODB, GemStone, ObjectStore, Versant, O2


 Object relational DBMS ( ORDB )

- 1990년대 후반에 제안되었고, 관계형 DBMS와 객체 지향 개념이 통합되었다.

ex. Infomix, Universal Server, Oracle


 새로운 데이터베이스 어플리케이션

- CAD database, software engineering database, genome database, data warehouse, data mining, OLAP, mutimedia database, web database 등

cf)
data mining : 데이터베이스에 저장된 숨겨진 의미있는 데이터를 찾는 것
warehouse: 업데이트와 삭제가 거의 이루어지지 않고 삽입만 하는 변경이 적은 쌓여지는 데이터를 3차원 형태로 저장함 ( 역사 데이터 같은 )

 


 현대 관계형 DBMS의 기능

- 높은 수준의 사용자 인터페이스를 제공한다. ( ex. SQL, 자연어 )

- 트랜잭션 개념 지원 : 동시에 많은 트랜잭션을 실행하고, 백업 및 복구를 실행한다.

- 객체 지향 개념을 지원한다.

- 웹 인터페이스와 XML을 지원한다.

- 데이터 수집 운영을 지원한다.

- OLAP 및 data warehouse를 지원한다.

- 효율적인 쿼리 처리를 지원한다. ( 쿼리 최적화, 인덱싱 )