[SQL] #1. 데이터베이스(DB)와 DBMS

2 분 소요


안녕하세요! 저는 얼마 전부터 모 대기업 데이터분석 직무 인턴을 시작했는데, 첫 업무로 Hadoop 베이스의 데이터베이스 관련 업무를 받게 되었습니다. 그리고 얼마 전부터 sql에 대한 공부는 해서 sql 코딩은 기본적인 것은 할 수 있지만, sql을 쓰기 전에 데이터베이스에 대한 공부가 먼저 필요하다고 생각했습니다. 그래서 데이터베이스(DB) 및 mySQL에 대해 다루는 포스팅 시리즈를 진행해보려고 합니다.

첫 포스팅에서는 데이터베이스(줄여서 DB)가 무엇인지, 특징은 무엇인지에 대해 알아보도록 하겠습니다.

1️⃣ 데이터베이스(DB)의 정의와 특징

데이터베이스(DB) 는 여러 응용프로그램이나 사용자들이 공유 및 이용할 수 있도록 체계적으로 통합한 데이터의 집합입니다. 방대한 데이터를 관리하기 위해서는 DB 사용이 필수적인데요, 왜 DB를 사용하면 효율적으로 데이터를 관리할 수 있을까요?

DB의 장점

  1. 데이터의 중복 최소화
    • DB는 데이터를 통합해서 관리함으로써 파일 시스템의 단점 중 하나인 데이터 중복성 문제를 해결합니다.
  2. 데이터의 일관성
    • 데이터가 비일관 하다는 것은 다음과 같이 설명할 수 있습니다. 예를 들어 신용 상태의 갱신 없이 고객의 납부 이력을 갱신하는 것입니다. 즉, 신용 상태 데이터와 고객 납부 데이터 사이에 모순이 발생할 수 있는데 이럴때 비일관성이 발생한다고 합니다. 반면 DB를 사용하게 되면 어떤 하나의 데이터만 변경할 경우 이와 연관된 다른 데이터까지 자동으로 변경되어 비일관성을 배제할 수 있습니다. 데이터의 일관성이 유지가 되는 것이죠!
  3. 데이터의 보안성
    • 허용된 사용자들만 DB에 접근할 수 있도록 권한을 설정함으로써 데이터 보안을 유지할 수 있습니다.
  4. 데이터의 무결성
    • 데이터의 무결성이란 데이터의 정확성과 일관성을 유지하고 보증하는 것을 말합니다. DB를 사용할 경우 유효성 검사를 통해 데이터에 오류가 발생하는 경우를 방지합니다.
  5. 데이터의 논리적, 물리적 독립성
    • 논리적 독립성: DB는 논리적인 구조로 이루어져 다양한 응용 프로그램의 논리적 요구를 만족시킬 수 있기 때문에 논리적으로 독립적입니다.
    • 물리적 독립성: DB의 사이즈를 늘리거나 줄여도 관련 응용 프로그램을 수정하지 않아도 됩니다.

2️⃣ 관계형 DBMS, 그리고 SQL

DBMS는 데이터베이스 관리 시스템으로, 사용자들이 데이터를 효율적으로 관리하고 접근할 수 있도록 도와주는 소프트웨어입니다. DB가 데이터를 저장하는 공간적인 역할을 한다면, DBMS는 DB에 저장된 데이터를 유지, 수정, 삭제 관리 등등 다양한 작업을 할 수 있도록 지원하는 역할을 합니다.

현재 대부분의 기업에서는 관계형 데이터베이스를 가장 많이 사용합니다. 그리고 관계형 데이터베이스를 조작하기 위한 프로그래밍 언어로는 SQL 을 가장 많이 사용하고 있습니다. 따라서 관계형 데이터베이스와 SQL의 역할은 정말 중요하다고 볼 수 있습니다.

SQL은 Structured Query Language로 관계형 데이터베이스에서 데이터를 정의, 조작, 제어하기 위해 사용하는 언어입니다. SQL 문장들의 종류는 다음과 같이 나눠집니다.

  1. 데이터 조작어(DML): SELECT, UPDATE, INSERT, DELETE
    • SELECT: DB에 들어 있는 데이터를 조회하거나 검색하기 위한 명령어
    • UPDATE(수정), INSERT(삽입), DELETE(삭제): DB의 테이블에 들어있는 데이터에 변형을 가하는 종류의 명령어
  2. 데이터 정의어(DDL): CREATE, ALTER, DROP, RENAME
    • 테이블과 같은 데이터의 구조를 정의하는데 사용되는 명령어
  3. 데이터 제어어(DCL): GRANT, REVOKE
    • 데이터베이서에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령어
  4. 트랜잭션 제어어(TCL): COMMIT, ROLLBACK
    • 논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 트랜잭션 별로 제어하는 명령어

오늘은 데이터베이스의 정의와 특징, 그리고 DBMS와 현재 가장 많이 사용되는 관계형 데이터베이스를 다루기 위한 언어인 SQL의 특징에 대해 간단히 살펴보았습니다. 앞으로 DB/SQL 관련 포스팅에서는 mySQL 코딩 및 SQL에서 알아둬야 할 특징에 대해 번갈아가며 포스팅해보려고 합니다.

Reference
https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4
https://github.com/hyewonleess/Interview_Question_for_Beginner/tree/master/Database

댓글남기기