관계형 데이터베이스 (relational database, RDB)
#
Find similar titles
- 최초 작성자
- 최근 업데이트
Structured data
- Category
- Database
Table of Contents
관계형 데이터베이스 (Relational Database) #
데이터와 정보 (Data and Information) #
데이터베이스 전문가는 데이터와 정보를 구별하도록 그림을 그리는 사람이다.
- 데이터(Data) : bit 들로 구성된 집합
- 정보(Information) : 특정 해석이나 의미를 담고 있는 데이터
컴퓨터의 파일에 있는 특정 바이트에 저장된 값을 데이터로 보면 되고, 이 데이터의 값을 정보와 연결하기 위해선 데이터의 유형(숫자, 문자 등), 데이터를 설명하는 이름 그리고 의미를 부여하기 위한 이름이 필요하다. 예를 들어, 16진수로 된 특정 값으로 된 파일이 있을 때 일부 바이트(1003~1022) 범위에 있는 값을 알고 있다고 하면 바이트로 된 데이터를 하나 갖고 있는 것이다. 만약 고객 이름을 표현하는 문자열이 20자리 byte로 되었다는 걸 알고 해당 바이트의 값을 연결하면 하나의 정보가 된다.
풍부한 정보를 처리해야 하는 응용프로그램 구축에서 중요한 첫 번째 단계는 데이터 명세를 작성하는 것이다. 데이터베이스 시스템은 정보 컨텐츠를 유지할 수 있는 데이터베이스의 데이터 명세를 기반으로 데이터를 정보로 변환하는 기능을 제공한다.
데이터베이스 관리 시스템(DBMS, Database Management System) #
데이터베이스 관리 시스템은 소프트웨어와 데이터의 조합이다.
- 물리적 데이터베이스(Physical Database) : 데이터 내용을 담고 있는 파일의 조합
- 스키마 (The Schema) : 물리 데이터베이스의 정보 내용의 명세
- 데이터베이스 엔진(Database Engine) : 데이터베이스 접근과 내용의 변경을 지원하는 소프트웨어
- 데이터 정의/조작 언어(DDL, DML) : 스키마 정의와 데이터베이스 접속을 지원하기 위한 프로그래밍 언어
관계형 데이터베이스 관리 시스템 (RDBMS, Relational Database Management System) RDBMS는 모든 데이터가 테이블에 저장된 관계 모델을 통합하는 데이터베이스 관리 시스템이다. 테이블의 행은 데이터베이스의 객체를 표현하고, 테이블의 열은 테이블에 있는 객체들의 속성이나 특성 값을 표현한다.
[ 예제 ] 테이블의 구조, 스키마, DBMS에서 테이블을 생성할 때 사용되는 테이블 생성문 예제
Custom table | 계정 | 이름 | 나이 |
| ---- | ----- | --- |
| 101 | 홍길동 | 10 |
| 102 | 임꺽정 | 20 |
| 103 | 장길산 | 30 |
Logical description(Schema) Customer (계정, 이름, 나이)
Table creation statment create table Customer(계정 integer,
이름 char(20), 나이 integer)
- 테이블 스키마는 이름(Customer 라는 테이블 이름)과 열의 이름 목록으로 구성되어 있다.
- 테이블 생성문은 스키마 정의에서 보여지는 것보다 각 열의 타입 정보가 추가로 지정되어 있다.
- 테이블의 각 행은 하나의 고객정보를 표현하고 각 열의 값이 각각 들어 있다.
스키마 (Schema) #
데이터베이스 시스템의 스키마는 시스템 내부에 저장되어 데이터베이스 시스템 스스로를 정의한다. 테이블 생성문이 데이터베이스에서 실행되면 해당 테이블 스키마는 데이터베이스 내에 저장되며, 데이터베이스 내용은 물리적 특성보다는 스키마 정보로 접근이 가능하다.
응용 프로그램 (Server-Client Application) #
응용프로그램은 일반적으로 클라이언트/서버 통신 인터페이스를 통해 데이터베이스 시스템과 상호작용한다. 응용프로그램은 클라이언트 컴퓨터에서 실행되고 객체로서 컴퓨터의 메모리에 정보를 저장한다. 서버는 응용프로그램과 다른 컴퓨터에서 실행하고 관계형 테이블을 생성해 메모리와 디스크에 정보를 저장한다. 응용프로그램은 데이터베이스에 있는 정보에 접근하기 위해 서버에 요청을 발행한다. 이 요청들은 데이터베이스 스키마에 기초하여 만들어진다. 데이터베이스 서버는 요청된 정보를 해당 테이블에서 추출하고, 추출된 정보를 표준 형태로 변환해 요청 클라이언트에게 전송한다.
이러한 일련의 동작은 요청 사용자의 접근 권한을 확인하고 부합된 경우에만 요청을 처리한다. DBMS는 데이터의 조합, 구조, 내용 접근, 응용프로그램과 상호작용을 지원하는 복잡한 소프트웨어이다.
역사 (History) #
-
60년 이전
컴퓨터가 개발된 초기 시대에는 데이터는 종이 테이프(Paper tape), 천공 카드(Punched card), 자기 테이프(magnetic tape)와 같은 순차적으로 정보를 저장하는 미디어 장비에 저장하였다. 그 결과 초반 정보 관리를 위한 노력은 파일의 구조와 정렬을 위한 알고리즘 개발을 중심으로 이루어졌다. -
1960년대 초반
GE(General Electric)의 Bachman에 의해 개발된 Integrated Data Store(IDS)이라는 최초의 범용 데이터베이스 관리 시스템이 소개되어 많은 인기를 끌었다. IDS의 개발은 CODASYL(the Conference on Data Systems Language)의 표준 데이터 모델 개발을 위한 주요 원동력이 되었다. -
1960년대 중반
디스크와 메모리 개발에 의한 용량 증가와 가격 하락은 방대한 양의 데이터 저장과 최적화된 데이터 접근을 가능하게 했으며, IBM은 대규모 데이터베이스에 데이터 동신 기능이 추가된 정보관리시스템(IMS)를 출시하였다. IMS는 아메리카 항공과 협력하여 항공 예약 시스템 SABRE 개발에 사용되었다. IMS는 네트워크 기반 설계로 많은 사용자의 동시 접속을 지원하였다. -
1970년대 초중반
대표 컴퓨터 생산업체에서 각 업체별 메인 데이터베이스 시스템을 생산해 공급하였으며, 주요 학술 연구 영역에서 데이터베이스 시스템 연구가 활발하게 이루어졌다. 에드거 F 커드(E.F Codd)는 모든 데이터베이스 이론의 기초가 되는 관계형 모델(Relational Model)을 발표하였으며, 1975년 크리소토퍼 J 데이트(C.J Date)에 의해 최초로 관계형 데이터베이스 서적이 출판되었다. 같은 시기 피터 첸(Peter Chen)은 객체-관계 모델 데이터 설명을 다이어그램으로 표현하는 방법을 제안하였다. -
1970년대 후반
관계형 모델은 주요 산업과 학술 연구 활동의 주제가 되었으며, IBM의 시스템 R 그룹에서 관계형 데이터베이스가 성능저하 없이 응용프로그램의 요청을 유동적으로 처리할 수 있다는 것을 보여주었고, 효과적인 클라이언트-서버 모델, 동시 접속 사용자 와 대용량 데이터 처리, 질의어 최적화에 의한 성공적인 성능향상을 시연해 보여주었다. -
1980년대 초반
오라클(Oracle), 인그레스(Ingres), 사이베이스(Sybase), 인포믹스(Informix)등 관계형 데이터베이스 시스템을 개발하는 소프트웨어 회사들이 다수 출현하였으며, 성능저하 없이 하드웨어 독립적인 데이터베이스 시스템 개발이 가능하다는 것을 보여주었다. 80년대는 PC(Personal Computer)의 대중화가 본격화 되면서 DBase, Paradox 같은 PC용 데이터베이스 시스템이 개발되었다. -
1980년대
1985년 최초의 표준 SQL 언어가 발표되었다. 데이터 정의어(DDL), 데이터 조작어(DML)의 표준화는 신생 데이터베이스 소프트웨어 산업의 신뢰를 증대시켰다. -
1990 ~ 2000년대
데이터베이스와 관계형 데이터베이스가 동의어로 느껴질 정도로 모든 분야에서 관계형 데이터베이스가 유일무이하게 사용되면서 오라클의 경우 세계에서 두 번째로 큰 소프트웨어 업체로 급부상하게 되었다. 데이터베이스에 대한 산업분야와 학문분야에서의 방대하고 활발한 연구는 누구도 예상하지 못할 정도로 품질과 관계형 모델의 응용력을 향상시켰다. -
2000년대 중반 이후
객체지향 데이터베이스, 분산 데이터베이스, 공간과 시간정보를 저장하기 위한 데이터베이스 등에 대한 활발한 연구가 계속되고 있으며, 인터넷의 성장과 이동과 무선 장비의 발전으로 새로운 이슈들을 해결하기 위한 노력이 계속되고 있다.