강좌
클라우드/리눅스에 관한 강좌입니다.
데이터베이스 분류

리눅스마스터1급 : MySQL(MariaDB) 데이터베이스 개론

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터1: MySQL(MariaDB) 데이터베이스 개론

 

 





1) 데이터베이스의 정의

 

 

데이터베이스는 데이터를 효율적으로 저장하고 불러쓰기 위해 개발된 것이다.

 

 

 

데이터베이스를 사용하기 이전에는 모든 데이터를 파일에 저장하였고, 프로그램을 작성하는 사람들마다 저장하는 형식은 모두 달랐다.

 

 

 

 

이름 | 학번 | 국어 | 영어 | 수학

홍길동 | 1 | 100 | 100 | 100

 

 

 

위와 같이 저장하는 사람이 있는 반면, 데이터간의 구분자를 <TAB>으로 구분하기도 하고, 공백, “,”으로 모두 다르게 저장하였다.

 

 

 

하나의 프로그램을 여러 사용자가 동시에 사용하기 위해 이 저장된 데이터 파일을 다뤄야 하는 부분은 점점 복잡해져 갔다.

 

 

 

이러한 복잡한 부분 데이터베이스라는 부분으로 분리를 하였고, 이 데이터를 접근하기위해 SQL이라는 특별한 언어를 사용하여 접근하여 파일에 직접 저장했을 때의 여러 문제를 데이터베이스에서 모두 처리하기 때문에 프로그래머는 신경쓸 부분이 줄어들게 되었다.

 

 

 

 

 

이 분리가 된 데이터베이스는 효율적으로 저장 및 검색을 하기 위해 데이터를 구조화시키고 갱신의 효율을 꾀하기 위해 많은 연구가 진행되었다.

 

 

 

오늘날의 데이터베이스는 다음과 같은 특징을 가진다.

 

 

 

 

실시간 접근성

 

지속적인 변화

 

동시 공유

 

내용에 대한 참조

 

 

 

 

데이터베이스라는 용어는 19636월에 미국 SDC(System Development Corporation)가 개최한 제1컴퓨터 중심의 데이터베이스 개발과 관리(Development and Management of a Computer-centered Data Base)”라는 심포지움에서 공식적으로 처음 사용 되었다.

 

 

 

데이터베이스 시스템(Data Base System)이란 용어는 19659SDC가 제2차로 개최한 "컴퓨터 중심 데이터베이스 시스템(Computer-centered Data Base System)"이란 심포지움에서 처음 사용 되었다.

 

 

 

G.E.(General Electric) 근무하던 바크만이 1963IDS(Integrated Data Store)라는 데이터베이스 관리 시스템을 만들어 현대적 의미의 데이터베이스 개념을 확립하였다.

 

 

 

 

 

대부분의 DBMSRDBMS(Relational Data Base Management System)이다.

 

 

 

관계 데이터모델(relational datamodel)은 데이터 모델 중에서 가장 개념이 간단한 모델이다.

 

 

 

IBM 연구소에서 근무하던 코드(E.F.Codd)1970년에 제안했다.

 

 

 

이 모델은 상대 수학적인 이론을 기반으로 한다.

 

 

 

코드가 수학자였기 때문에 수학 분야, 특히 집합론과 논리분야의 개념을 사용했다.

 

 

 

데이터 모델을 개발하기 위해서 테이블 관계로 묘사하는 이론적 모델 과정이 발생하는데 이를 개체관계모델(entity relational model)이라고 한다.

 

 

 

이 관계 데이터베이스를 위한 설계과정은 이론적으로 관계수학에 기초한 실제 구현이라 보면 된다.

 

 

 

현실 세계는 객체관계 그림(diagram)으로 표현되며, 개체와 그 관계는 각기 사각과 선으로 그려진다.

 

 

 

 

 

SQL(Structured Query Language(원어(SEQUEL):Structured English Query Language)은 개체 관계형 데이터베이스를 지원하기 위해 1974IBM 연구소에서 창안되었으며, 이 언어는 수학적 관계 대수와 관계 해석(relational calculus)에 기반을 두고 있다.

 

 

 

데이터 모델은 데이터를 조작하기 위한 연산집합을 가져야 한다.

 

 

 

왜냐하면 그것은 데이터베이스 구조와 제약 조건을 정의하기 때문이다.

 

 

 

관계 데이터모델 연산집합(a set of operations)은 관계대수로 표현되고, 그 연산은 사용자에게 여러 질의를 가능하게 한다.

 

 

 

 

 

데이터베이스의 언어는 다음과 같은 이뤄져 있다.

 

 

 

 

 

데이터 정의 언어(DDL:data definition language) - Create, Alter, Drop등의 명령

 

 

데이터 조작 언어(DML:data manipulation language) - Select, Insert, Delete, Update...

 

 

데이터 제어 언어(DCL:data control language) - Grant,Revoke

 

 

 

데이터베이스는 ACID 규칙을 만족해야 한다.

 

 

 

ACID는 다음과 같다.

 

 

 

 

 

원자성(原子性, Atomicity) : 한 트랜잭션의 모든 작업이 수행되든지, 아니면 하나도 수행되지 않아야 한다.

 

 

 

트랜잭션이 제대로 실행되지 않았으면 롤백(roll back)한다.

 

 

 

 

일관성(一貫性, Consistency) : 모든 트랜잭션은 데이터베이스에서 정한 무결성 (無缺性, integrity) 조건을 만족해야 한다.

 

 

 

 

격리성(隔離性, Isolation) : 두 개의 트랜잭션이 서로에게 영향을 미칠 수 없다.

 

 

 

트랜잭션이 실행되는 동안의 값은 다른 트랜잭션이 접근할 수 없어야 한다.

 

 

 

 

내구성(耐久性, Durability) : 트랜잭션이 성공적으로 끝난 뒤에는, (시스템 실패가 일어나더라도) 그 결과가 데이터베이스에 계속 유지되어야 한다.

 

 

 

 

 

리눅스 환경에서는 다양한 DBMS를 사용할 수 있다.

 

 

 

MySQL, PostgreSQL, mSQL, Informix, Oracle, 큐브리드, 여러종류의 NoSQL등 대부분의 DBMS가 설치된다.

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,810 개
  • 현재 접속자 :  97 명