💡 What is this? 데이터를 효율적으로 저장/관리하는 시스템 소프트웨어.
DataBase Management System의 약자로
DBMS
라 표기한다.
DBS(Database System)
=DB
+DBMS
로,,
실질적으로는DBMS, DBS, DB
용어가 상호대체적으로 사용된다.
데이터 추상화 제공
데이터 접근의 용이성 제공 : 데이터베이스 시스템
은 데이터 접근을 위한 언어를 제공하고 편리한 사용자 인터페이스를 제공한다. 만약 화일(file) 시스템
을 이용하여 데이터 관리를 하는 경우에는 사용자가 직접 데이터 접근을 위한 각종 프로그램을 작성하여야 한다.
데이터 중복(data redundancy) 및 불일치성(inconsistency)에 대한 제어 용이 : 데이터 불일치성은 데이터 간에 값이 서로 일치하지 않은 현상을 말하며, 화일 시스템
을 사용하게 되면 데이터 중복이 발생하기 쉽고, 데이터 중복이 발생하면 데이터 불일치가 발생하기 쉽다.
데이터 무결성 제약조건(integrity constraint) 유지 용이 : 데이터 무결성 제약조건은 데이터가 만족하여야 하는 조건으로, 예를 들어 “학생의 학점 데이터는 반드시 최소값 0.0 최대값 4.5 내의 실수 값이어야 한다” 등이다. 데이터 제약 조건은 화일 시스템
에서는 화일 접근 프로그램에 산재되며, 이 경우 데이터 제약 조건 관리가 용이하지 않다.
갱신 원자성 제공(Atomicity of updates) : 데이터베이스 시스템에서는 데이터 갱신이 원자적으로 이루어져야 하며, 이는 데이터 갱신 시에 갱신 연산이 부분적으로 데이터베이스에 반영되질 않음을 의미한다. 갱신 연산이 부분적으로 이루어지면 데이터베이스 상태가 불일치 되거나 데이터베이스 제약 조건이 만족하지 않게 될 가능성이 있다. 예를 들어, 100만원 송금을 할 때 반드시 100만원 송금이 완전히 되거나 아예 송금이 되지 않아야 한다.
다수 사용자의 동시성 제어 : 데이터베이스 시스템 환경은 다수의 사용자가 동시에 동일 데이터베이스를 접근하게 되며, 이 경우 데이터베이스 관리 시스템은 사용자에게 동시성 제어 기능을 제공한다. 예를 들어, A와 B라는 사용자가 100이라는 자원에 접근하여 각각 30, 40만큼의 자원을 동시에 사용할 때 그 시점에서 반드시 total=100(A:30,B:40,자원:30)이어야 한다.
데이터 보호 : 데이터 보호는 악의적인 데이터 접근으로부터 데이터를 보호하는 것으로, 데이터베이스 시스템은 데이터 보호 기능을 제공한다. 화일 시스템
은 운영체제가 제공하는 데이터 보호 기능을 사용하게 되는데, 데이터베이스 시스템
에서 제공하는 데이터 보호 기능과 비교하여 초보적인 수준이다.
데이터 백업 및 회복 : 데이터베이스 시스템
은 다양한 시스템 장애 발생을 대비하여 데이터 백업 및 회복 기능을 제공하여 데이터 손실을 방지한다.
화일 시스템(file system)
을 제공하고 있으며, 예를 들면 유닉스 시스템은 "filesystem" 화일 시스템을 제공한다. 화일 시스템은 사용자에게 화일을 생성하고 제거하고, 화일을 열고 닫으며, 또한 그 내용을 읽고 쓸 수 있는 기능을 제공하며, 상세한 사용 방법은 화일 시스템마다 다르다.순수 이론 관점
에서는 사용자는 화일 시스템을 이용하여 데이터베이스 관리를 할 수 있으나, 실질적으로는
사용자는 여러 가지 제약 사항으로 인하여 화일 시스템만으로는 효율적인 데이터베이스 관리가 불가능하다.Structured Query Language의 약자로 데이터의 추가, 삭제, 갱신 등 RDBMS를 조작할 때 사용되는 표준화된 언어이다.
○ 계층형 데이터베이스
○ 관계형 데이터베이스(RDBMS)
표(테이블)
형식 데이터를 저장하는 DBMS이다. 일반적으로 가장 많이 사용하는 데이터베이스이며, 관계형 데이터베이스
만이 SQL 명령어
로 데이터를 조작한다. 앞으로 다룰 데이터베이스는 모두 RDBMS이다..!○ 객체지향 데이터베이스
○ XML 데이터베이스
XML 이란? 태그를 이용하여 문서 작성한다는 점에서
HTML
과 비슷한 언어. BUT,XML
은 HTML처럼 데이터를 보여주는 것이 아닌, 데이터를 저장하고 전달할 목적으로 만들어졌으며, 저장되는 데이터의 구조를 기술하기 위한 언어
○ 키-밸류 스토어(KVS)
트랜잭션 : 데이터베이스 시스템의 중요한 기능으로 트랜잭션 관리는
동시성 제어
와복구 기능
으로 구분한다. 추후 다룸.
우리가 알고있는 실세계의 데이터 :
Data
ex) 교수데이터, 강의데이터, 수강데이터일반적인 데이터외에 데이터를 관리하거나 표현하는 특수데이터:
Meta- Data
1950s and 1960s
1970s
1980s
1990s
2000s
2010s
□ Oracle
오라클
에서 개발한 RDBMS이다. 역사가 깊은만큼 많은 시스템에서 채택하여 사용중이고, 현재 가장 많이 쓰이는 RDBMS 중 하나로서, RDBMS의 표준이라고 해도 과언이 아니다.□ DB2
IBM
이 개발하였으며 Oracle처럼 역사가 오래된 RDBMS이다. 다만 오라클이 유닉스 워크스테이션 중심이었던 것과 달리, 한동안 DB2는 IBM 컴퓨터에서만 구동되었다. 이후 유닉스나 윈도우 등의 플랫폼에서도 DB2를 구동할 수 있게 되었지만 시장 점유율을 확대할 수 없었으며, Oracle이 더 유명한 것도 이러한 배경과 관련이 있다.□ SQL Server
Microsoft
가 개발한 RDBMS이며 윈도우플랫폼에서만 동작한다. 앞에 언급한 RDBMS에 비해 비교적 새로운 제품으로 윈도우가 서버 분야로 영역을 넓히면서 SQL Server를 사용하는 시스템도 많이 증가했다.□ PostgreSQL
오픈소스 커뮤니티
가 개발한 RDBMS이며, 무료 소프트웨어인만큼 자유롭게 사용할 수 있다.□ MySQL
오픈소스 커뮤니티
가 개발한 RDBMS이다. 처음 나왔을 당시 경량 데이터베이스라는 점을 강조하다 보니 필요한 최소한의 기능만 갖추어져 있었으나, 기능이 확장되면서 지금은 다른 RDBMS와 비교해도 부족하지 않을 정도이다.□ SQLite
오픈소스 커뮤니티
에서 만들어졌으며 휴대단말 등 작은 하드웨어용으로 경량화한 임베디드 시스템
에 자주 쓰이는 RDBMS이다. 구글의 OS 안드로이드
에서 SQLite RDBMS가 표준으로 기본 내장되어 있다.