데이터베이스: 두 판 사이의 차이

편집 요약 없음
편집 요약 없음
30번째 줄: 30번째 줄:


== SQL ==
== SQL ==
 
SQL은 RDBMS에서 질의를 수행할 때 사용하는 언어이다. 자세한 설명은 [[쉽게 배우는 프로그래밍 입문/SQL]] 참조.
== 트랜잭션 ==
== 트랜잭션 ==



2015년 6월 9일 (화) 03:41 판

개요

데이터베이스는 여러 사람들이 공유하고 사용할 목적으로 통합 관리되며 중복을 최소화 한 정보의 집합이다.

파일 시스템과의 차이점

파일시스템이나 데이터베이스나, 자료를 영구적으로 저장하기 위해 존재한다는 점에서 그 목적은 같다. 그러나 데이터베이스가 갖는 파일시스템과의 가장 큰 차이점은 다음과 같다.

  1. 데이터 의존성
    파일의 구조와 접근 방법을 변경할 경우 응용 프로그램은 또한 같이 수정되어야 한다. 그러나 데이터베이스는 응용시스템에 대해서 독립성을 갖는다.
  2. 데이터 무결성
    데이터베이스는 데이터의 정확성, 일관성, 유효성, 신뢰성을 위해서 무효한 갱신에 의해 데이터가 변조되는 것을 방지한다.

종류

관계 지향적 데이터베이스(RDBMS)

1970년 IBM 연구소의 Ted Codd가 처음으로 제시한 개념으로, 현재 상용 데이터베이스의 거의 대부분을 차지하는 방식이다. 관계지향적 모델에서 데이터베이스는 개체(Entity)와 그 개체간의 관계(Relation)를 나타내는 테이블의 모임으로 정의된다. 이 테이블을 구성하는 요소는 행(Tuple, Record), 열(Attribute, Field)이다. 관계지향적 모델의 이론적 토대는 집합론논리학에 있으므로 관계지향적 데이터베이스에 대한 심도있는 이해를 위해서는 이 분야의 수학에 대한 공부가 반드시 선행되어야 한다.

이론적으로 관계지향적 데이터베이스에 대한 질의는 관계 대수관계 해석 으로 표현될 수 있다. 이 두 표현 방식의 표현 가능 범위는 동일하다. 그러나 관계 대수의 경우, '질의를 통해 가져오고자 하는 것이 무엇인가' 에 초점을 맞추고 있고 관계 해석의 경우 '질의를 통해 가져오고자 하는 정보를 어떻게 가져올 것인가' 에 초점을 두고 있다. 그러나 이 두 방식은 모두 고도로 수학적이고 추상적인 방법으로, 실제 응용 컴퓨터 과학에 적용하기에는 많은 무리가 따랐다. 연구자들은 직관적으로 이해하고 사용할 수 있는 질의 형식을 개발할 필요성을 느꼈고, 마침내 1974년 IBM 연구소는 자신들이 제시한 관계지향적 데이터베이스에 사용될 질의 형식을 발표하는데 그것이 SQL(원래 약어는 SEQUEL로, Structured English QUEry Language의 약자였으나 이후 SQL로 굳어지게 되었다.)이다. 어찌된 일인지 당시 IBM은 다른 원천기술에 대해서는 모두 특허를 걸어놓았으나 SQL에 대해서는 별다른 권리를 주장하지 않았는데, 덕분에 모든 RDBMS는 이 SQL의 기본적인 틀을 공짜로 사용할 수 있다. OracleJava에 대한 권리를 주장하여 마이크로소프트 측에서 결국 C#이라는 언어를 새로 개발하게 된 것을 생각해보면, IBM은 떼돈을 벌 수 있는 좋은 기회를 놓친 대신 RDBMS 발전에 큰 기여를 한 셈.

객체 지향적 데이터베이스(ODBMS)

NoSQL

특징

이 페이지에서는 가장 보편적으로 널리 쓰이는 DBMS 인 관계지향적 데이터베이스 모델을 중심으로 서술하도록 한다.

ER Model

엔티티

관계

ER 다이어그램

무결성

정규화

SQL

SQL은 RDBMS에서 질의를 수행할 때 사용하는 언어이다. 자세한 설명은 쉽게 배우는 프로그래밍 입문/SQL 참조.

트랜잭션

PL/SQL

DB 최적화