본문 바로가기

study/sql

데이터베이스와 SQL

SQL 첫걸음이란 책을 읽으면서 정리중.

 

데이터베이스 : 데이터의 집합. 통용되는 개념은 특정 데이터를 확인하고 싶을 때, 간단하게 찾아낼 수 있도록 정리된 형태.(계산대 데이터, 핸드폰의 연락처, ...)

 

DBMS : 데이터베이스 관리 시스템(Database Management System). 사용 목적은 생산성 향상, 기능성, 신뢰성 확보에 있다.

  • 생산성 : 데이터 검색, 추가, 삭제, 갱신과 같은 기본 기능을 제공한다. 시스템 개발 과정에서의 생산성 향상을 도모할 수 있다.
  • 기능성 : 데이터베이스를 다루는 기능을 제공한다. 다수 유저의 요청을 대흥, 대용량 데이터를 저장하고 고속으로 검색 등의 기능을 제공한다.
  • 신뢰성 : 여러 하드웨어로 구성된 데이터베이스에 대해 확장성(Scalability), 부하 분산(Load Balancing)을 구현한다.(스케일 아웃)

SQL : 관계형 데이터베이스 관리 시스템을 조작하는 언어(Relational DBMS). Structured Query Language, 구조화 질의어. SQL 명령은 크게 3가지로 나눌 수 있다.

  • DML : Data Manipulation Language. 데이터를 조작할 때 사용. SQL의 가장 기본이 되는 명령 set.
  • DDL : Data Definition Language. 데이터를 정의하는 명령어. 데이터베이스는 '데이터베이스 객체'라는 것을 이용하여 데이터를 관리하는데, 이런 객체를 만들고 삭제하는 명령어.
  • DCL : Data Control Language. 데이터를 제어하는 명령어. 트랜잭션을 제어하는 명령과 데이터 접근 권한을 제어하는 명령이 포함됨.

DBMS의 종류 : 데이터 저장 방법에 따라 분류할 수 있다.

  • 계층형 데이터베이스 : 역사가 오래된 DBMS. 폴더와 파일 등의 계층 구조로 데이터를 저장하는 방식의 데이터베이스.
  • 관계형 데이터베이스 : '관계 대수'에 착안하여 고안한 데이터베이스. 행과 열을 갖는 표 형식 데이터를 저장하는 형태의 데이터베이스. 표 형식 데이터란 2차원 데이터를 의미함. 엑셀 시트 같은 표들을 저장하고 표에 이름을 붙여 관리.
  • 객체지향 데이터베이스 : 가능하면 객체 그대로를 데이터베이스의 데이터로 저장하는 것.(?)
  • XML 데이터베이스 : XML이란 자료 형식으로 기록된 데이터를 저장하는 데이터베이스. XQuery라는 전용 명령어를 사용.
  • 키-밸류 스토어(KVS) : 키와 그에 대응하는 값(밸류)이라는 단순한 형태의 데이터를 저장하는 데이터베이스. NoSQL(Not only SQL)이라는 슬로건으로부터 생겨난 데이터베이스.

RDBMS 제품은 여러 회사들이 만들기 때문에 SQL에도 방언이 존재한다.

 

데이터베이스 서버 : 많은 RDBMS가 클라이언트/서버 모델을 사용하는데, 이때 사용자 인증이란 것이 필요하다. 사용자 별로 데이터베이스에 대한 접근을 제한할 수 있기 때문이다. 사용자 인증은 ID와 Password로 한다. 인증이 되면, SQL 명령을 보낼 수 있다.