티스토리 뷰
데이터베이스란 무엇인가? (What is database?)
데이터베이스는 자료의 중복을 없애고, 효율적인 데이터를 모으기 위한 기술입니다. 이는 여러 응용 시스템들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 묶음이다.
그럼 데이터와 정보란 무엇일까요?
데이터(Data)는 현실 세계로 부터 측정 및 로깅을 통해서 얻어진 사실이나 값을 의미합니다. 데이터는 가공하기 이전의 자료를 의미하며, 이를 가공한 결과를 우리는 정보(Information)이라 말합니다. 즉 데이터를 컴퓨터와 같은 장비를 통해서 데이터를 처리하게 되면 처리된 데이터를 우리는 정보라고 말합니다.
데이터베이스란?
데이터베이스는 데이터를 효율적으로 활용하기 위해서 자료를 저장하고, 이에 대한 정보를 사용할 수 있게끔 도와주는 데이터 저장 방식중에 하나입니다. 이는 데이블 그리고 데이블과 관련된 SQL 구성 요소들을 담고 있습니다. 테이블은 열과 행으로 구성이 됩니다. 열은 테이블에 저장된 하나의 데이터입니다. 행은 한 객체에 대한 속성들을 나타내는 열 집합입니다. 열과 행이 모여 하나의 테이블을 구성합니다.
데이터베이스를 활용하여 데이터를 처리하는 과정을 우리는 트랜잭션이라 부릅니다.
트랜잭션이란?
트랜잭션(Transaction)이란 데이터베이스 또는 관련 유사시스템에서 사용할 수 있는 상호작용의 단위입니다. 트랜잭션은 성공 및 실패가 분명하고, 이에 대한 상호독립성을 가지고 있습니다. 트랜잭션의 특정은 아래와 같습니다.
- 원자성(Atomicity) : 트랜잭션의 처리는 완전히 끝마치지 않을 경우에는 전혀 이루어지지 않은 것과 같아야 한다. 이러한 특성을 Nothing"이라 한다.
- 일관성(Consistency) : 트랜잭션들간의 영향이 한 방향으로만 전달되어야 한다.
- 고립성(Isolation) : 트랜잭션의 부분적인 상태를 다른 트랜잭션에 제공해서는 안된다
- 지속성(Durability) : 성공적인 트랜잭션의 수행 후에는 반드시 데이터베이스 (디스크)에 반영하여야 한다.
이론적으로 각각의 트랜잭션에 대해 데이터베이스는 위의 특징을 보장합니다. 이를 우리는 ACID라고 부릅니다.
데이터베이스의 종류
데이터베이스는 기술적으로 발전하면서 계층 데이터 모델, 네트워크 데이터 모델에서 관계 데이터 모델로, 그리고 객체 지향 데이터 모델 혹은 객체-관계 데이터 모델로 발전을 하고 있습니다.
객체 지향 개념을 담고 있는 객체지향 데이터 모델이 있기는 하지만, 현재까지 가장 많이 사용되고 있는 모델은 관계 데이터 모델입니다. 이러한 모델을 사용하는 데이터베이스를 우리는 관계형 데이터 베이스라고 부릅니다.
관계형 데이터 베이스란?
관계형 데이터베이스는 관계형 데이터 모델을 사용하는 데이터베이스를 말합니다. 관계형 데이터 모델은 IBM 연구소에서 근무하던 코드(E.F.Codd)가 1970년에 제안하였는데, 이 모델은 상대 수학적인 이론을 기반으로 하고 있습니다. 집합론과 논리분야의 개념을 사용하여 만들어진 이 데이터 모델은 개체들관의 관계를 바탕으로 데이터를 저장하고 있습니다.
데이터 저장에 필요한 명령어를 지원하기 위해 1974년 IBM 연구소에서 Structured Query Language라는 SQL를 창안하였고, 현재까지도 SQL을 기반으로 개발자들은 데이터베이스를 관리하고 있습니다.
SQL이란?
SQL은 관계형 데이터베이스의 데이터를 관리 및 처리하기 위해서 설계된 프로그래밍 언어입니다. 자료 검색에서 부터 데이터 베이스 접근 조정에 대한 관리까지 관계형 데이터베이스를 통해서 처리해야 하는 모든 명령어를 담고 있습니다. 현재 많은 데이터베이스 프로그램들이 ㅇ이 언어를 표준으로 채택하여 지원하고 있습니다.
SQL은 크게 데이터 정의 언어, 데이터 조작 언어, 데이터 제어 언어로 3가지의 문법으로 구분할 수 있습니다. 데이터 정의언어는 테이블과 인덱스를 관리하고, 데이터 조작언어는 데이터를 쓰거나 읽거나 지우는데 사용됩니다. 마지막으로 데이터 제어 언어는 권한 부쳐 및 트랜잭션 관리에 사용됩니다.
- 데이터 정의 언어(DDL:data definition language) - Create, Alter, Drop등의 명령
- 데이터 조작 언어(DML:data manipulation language) - Select, Insert, Delete, Update 등의 명령
- 데이터 제어 언어(DCL:data control language)- Grant,Revoke, Begin, Commit, Lock 등의 명령
이 글에서는 간략히 데이터베이스와 관계형 데이터베이스에 대해서 알아보았습니다.
이 글이 도움이되셨나요?
그럼 아래의 그림을 클릭해주세요.
'프로그래밍 팁s > Database' 카테고리의 다른 글
[데이터베이스] SQL ALTER문 - 테이블을 변경하자. (1) | 2014.11.25 |
---|---|
[데이터베이스] 정규화(Nomalization) - 원자적 데이터와 기본키(Primary Key) (0) | 2014.11.24 |
[데이터베이스] Delete와 Update 구문 - 데이터를 삭제하고 수정하기 (1) | 2014.11.21 |
[데이터베이스] Select 문 - 데이터 가져오기 (0) | 2014.11.20 |
데이터 베이스 기초 SQL 명령어 - 데이터베이스 생성 부터, 테이블 사용까지 (0) | 2014.11.20 |