데이터베이스란?
Goal
- 데이터베이스에 대해 알아본다
- DBMS의 등장 배경에 대해 알아본다
- SQL의 정의를 알아본다
1. 데이터베이스란?
1-1 데이터베이스의 등장이유
1) 데이터베이스 등장이전 데이터 관리의 문제점
- 과거에는 각 컴퓨터가 파일을 개별적으로 관리하고 있었음.
ex) 행정실 컴퓨터에서는 학생의 등록금 납입 유무를, 도서관 컴퓨터에서는 학생의 도서 대여 정보를 개별 관리.
- 이러한 상태에서 하나의 컴퓨터가 다른 컴퓨터의 자료를 필요로 할 때 여러가지 문제가 발생함.
ex) 도서관에서는 학생의 등록금 납입 유무에 따라 학생에게 도서를 빌려주기 때문에, 도서관 컴퓨터에서도 행정실 컴퓨터의 등록금 납입 유무자료들이 필요함. 하지만 파일을 각각의 컴퓨터에 보관하고 있기 때문에, 파일을 하나로 뭉치는 싱크작업을 위해 많은 시간이 걸리고 업데이트가 실시간으로 이루어지지 않는 문제 발생.
2) 데이터베이스의 등장
- 데이터를 베이스와하여 한 곳에 모음으로써 개별적으로 관리 했을 때 발생하는 문제점을 해결하기 위해 데이터 베이스가 등장함
- DB를 사용함으로써 데이터를 한 곳에서 관리하여 자료의 중복을 최소화하고, 실시간 업데이트가 가능해짐.
1-2 데이터베이스의 단점
1) 참조의 문제
- 자료를 하나의 베이스에서 특성별로 관리하기 때문에, 의미있는 자료를 얻기 위해서는 하나의 자료에서 다른 자료를 참조해야 하는 작업이 필요함. ex) 학생을 모아놓은 데이터와 납입 여부를 모아논 자료가 있을때, 납입 여부만 봐서는 어떤 학생의 납입여부인지 모르기 때문에 학생데이터를 참조하여 의미있는 자료를 얻어야 함.
- 참조작업으로인해 데이터베이스의 사용이 번거로워지는 문제점 발생
* 이러한 문제점을 해결하기 위해 참조의 방식을 고민하게 되었고 Hierarchical, Network, Object-Oriented, Relational 등의 다양한 참조형 DB가 생겨났으며 현재에는 Relational 방식이 많이 쓰임
2) 다양한 단점들과 DBMS
- 동시성 : 서로 동시에 같은 데이터에 대해서 삭제, 수정작업 요구할 수 있기 때문에 병목현상이 발생한다.
- 성능 : 여럿이 하나의 DB를 같이 사용하다보니 작업을 기다려야되고, 성능이 떨어지게 된다.
- 보안 : 네트워크로 연결되어있기 때문에 모르는 사용자가 데이터를 가져갈수도있다.
DBMS
이런 이슈들을 만족할 수 있도록 DB를 사용자가 집적 이용하는게 아니라 데이터베이스를 따로 관리하는 관리자인 DBMS가 생기게 되었고. 사용자는 BBMS를 거쳐서 데이터베이스를 이용한다.
데이터베이스 관리 시스템을 만드는 것은 어렵기 때문에, DBMS 전문 회사가 생기고 그런 제품들중에는 우리가 많이 알고 있는 오라클, Mysql등이 있다.
2. SQL (Structured Query Language)이란?
- DBMS에게 질의하는 명령어의 집합
- 데이터베이스의 관리를 DBMS가 하기 때문에, 데이터베이스의 여러가지 자료를 사용하기위해 DBMS에게 부탁하는 명령어
Structured : 쿼리를 날릴 때, 구체적으로 질의를 보낸다 ex) '학생데이터', '주문데이터' 학생, 주문이라는 것도 하나의 구조화된 객체이다)
* DDL : 어떤 데이터를 쓸것인지 정의함 create/ alter /drop
* DML : 정의한 데이터에 맞추어 데이터를 입력함 select / insert / upate / delete
* DCL : 사용자의 권한을 관리자가 설정함 : grant / revoke
* 질의 : 구조화된 데이터를 요구하는 것.