DBMS
DataBase Management System, 데이터베이스 관리 시스템
(관계형 데이터베이스에 한정하는 것을 강조하고 싶은 경우에는 RDBMS을 사용하기도 함)
- 예)
● Oracle
● SQL Server
● DB2
● MySQL
● PostgreSQL
● Firebird
1. 관계형 데이터베이스
Relational DataBase, RDB
- 데이터를 2차원 표를 사용해 관리하는 데이터베이스
여기서 말하는 Relational(관계)은 2차원 표를 표기할 때 사용하는 단어이다.
엔지니어가 보기에 가장 익숙한 2차원 표는
Excel이나 Google Docs로 대표되는 스프레드시트가 있다.
관계형 데이터베이스의 이점
- 프로그래밍 언어를 사용하지 않아도 데이터를 조작할 수 있다.
- 결국 프로그래밍 언어를 습득하지 않아도, 프로 엔지니어나 프로그래머가 아니어도 데이터 조작이 가능하다.
- 이것을 가능하게 한 것이
관계형 데이터베이스에 있는 ‘SQL’이라는 언어다.
✔️ CSV 파일로 데이터를 조작하는 경우
(관계형 데이터베이스를 사용하지 않았을 때)
- 이 자체는 매우 간단한 로직이지만 프로그래밍 언어의 지식이 필요하고,
- 프로그램을 실행하기 위한 환경도 준비해야 한다.
- 또한, 갱신이나 제거를 수행하는 경우에도
이를 실행할 수 있는 프로그램을 작성해야한다.
2. SQL 기초 지식
Structured Query Language(SQL)
- 데이터베이스에는 4가지 기본 조작(검색, 등록, 갱신, 제거)에 대응하는 명령어 존재
- SELECT(검색)
- INSERT(등록)
- UPDATE(갱신)
- DELETE(제거)
- 장점
- 일반 프로그래밍 언어와 비해 간결하게 기술
- 프로그래밍 언어에 사용되는
반복(FOR/WHILE)이나 조건 분기(IF/CASE)를 사용하지 않아도 데이터 조작을 할 수 있음
- 관계형 데이터베이스의 구조
- 테이블
- 관계형 데이터베이스에서 데이터를 관리하기 위한 유일한 단위
- ‘어떤 테이블에 어떤 데이터를 포함하는가’
- 시스템의 기능을 좌우
- 테이블에 많은 정보를 채워 넣는다고 하면
정보의 정합성을 유지 관리하기가 어렵고,
데이터를 너무 엄격하게 분산시키면 성능이 나빠지니 주의해서 설계해야함
- 열(컬럼) 행
- 테이블
3. 관계형 데이터베이스를 다루기 위한 사전 지식
DBMS와 데이터베이스의 차이
데이터베이스’와 ‘DBMS’란 단어는 실제 개별환경에서도 별로 구분되지 않고 사용되는 경우가 많지만, 둘은 약간 다르다.
- 데이터베이스: 기능이나 구조를 나타내는 추상적인 개념
- DBMS: 데이터베이스(기능이나 구조를 나타내는 추상적인 개념)를 실현하기 위해 작성된 구체적인 소프트웨어
- Oracle이나 MySQL 같은 제품은 ‘DBMS이며 데이터베이스는 아니다’가 바른 표현
- ‘MySQL은 DBMS의 한 가지다’ - 맞는 표현
- ‘MySQL은 데이터베이스의 한 가지다’ - ‘추상’과 ‘구상’을 혼동한 이상한 표현
- MySQL: 구체적으로 조작하는 것이 가능한 물리적 실체를 동반한 제품(구현Implementation)
- 데이터베이스: 기능의 집합을 나타내는 추상적 개념
소프트웨어와 데이터베이스의 관계
- SI(System Integration)
- 데이터베이스와 다른 여러 가지 소프트웨어와 조합해서 시스템을 만드는 작업
(단순히 데이터베이스만으로는 구축할 수 없음) - 어떤 소프트웨어를 조합할지는 그 시스템의 목적이나 규모에 따라 다름
- 사용되는 소프트웨어는 크게 다음 3가지로 구분할 수 있음
① 운영체제
② 미들웨어
③ 애플리케이션
- 데이터베이스와 다른 여러 가지 소프트웨어와 조합해서 시스템을 만드는 작업
➡️ 3가지 소프트웨어는 계층성이 있으며
한 레이어(계층)의 소프트웨어가 동작하지 않으면
상위 레이어의 소프트웨어는
설치해도 동작하지 않거나 설치조차 할 수 없는 제약이 발생
- DBMS는 운영체제와 애플리케이션의 ‘중간(미들)’에 있으며,
기능적으로 양쪽의 성질을 겸비해서 갖추고 있어 미들웨어에 해
(참고)
- 데이터베이스