2022. 10. 8. 02:41ㆍIntelligence Technology
개발자가 귀해지고 있는 요즘! 데이터베이스 하나라도 잘 알고 계신다면 아마 취업은 어디든 가실 수 있을 겁니다.
이번 포스팅에서는 데이터베이스(Database, DB) 및 DBMS의 개념에 대해 전달해 드리겠습니다.

데이터베이스는 조직에서 업무를 수행하는데 필요한 관련 데이터들을 모아둔 것으로 다음과 같이 4가지로 정의가 가능합니다.
1. 통합된 데이터(Integrated Data)
자료의 중복을 배제한(최소화한) 데이터들의 집합
2. 저장된 데이터(Stored Data)
컴퓨터가 접근할 수 있는 저장 장치에 있는 자료
3. 운영 데이터(Operational Data)
기업이 업무를 수행하는데 없어서는 안 되는 자료
유지보수가 가능한 데이터
4. 공용 데이터(Shared Data)
여러 시스템이 함께 사용하고 공유하는 자료
위와 같이 정의를 내리니 와닿지 않는데 코로나 상황을 예시로 설명해 드리자면, 보건소에서 코로나 확진자들에 대한 인적 사항, 연락처, 백신 접종 여부 등의 자료를 조사해서 보관하고 있다면 데이터베이스를 가지고 있다고 볼 수 있습니다. (통합된 데이터) 좋은 데이터베이스라면 같은 확진자 정보가 2번, 3번씩 입력되지 않습니다. (저장된 데이터) 그리고 보건소 서버 및 데이터베이스에 저장합니다. (운영 데이터) 코로나가 한창 심할 때는 수시로 국민들한테 확진 추이 및 대응 방안 등을 보고해야 하니 꼭 필요한 자료입니다. (공용데이터) 확진자 정보를 처음 등록하는 보건소 직원이 있다면, 중간중간 문자 안내를 해주는 직원도 있고 확진 증명서를 발급하는 직원들도 전부 데이터베이스에 저장된 코로나 확진자 정보를 공용으로 사용합니다.
데이터베이스는 다음과 같은 4가지 특징이 있습니다.
1. 실시간 접근: 비정형적으로 조회 시 실시간으로 가장 근사치에 가까운 결과물을 찾아 응답이 가능(ex: 포털사이트 조회)
2. 지속적인 변화: 새로운 데이터를 삽입(insert), 삭제(delete), 갱신(update)으로 항상 최신의 데이터를 유지
3. 동시 공용: 서로 다른 목적을 가진 사용자들을 위한 자료이므로 여러 사용자가 동시에 데이터베이스를 이용 가능
4. 내용에 의한 참조: 데이터베이스에 있는 데이터를 조회할 때 데이터의 주소나 위치로 찾는 게 아닌, 사용자가 찾고자 하는 데이터의 내용으로 검색
우리는 위와 같은 데이터베이스의 특징들을 다루기 위해 DBMS(Database Management System)이라는 소프트웨어를 사용합니다.
즉 사용자의 요구에 따라 데이터베이스에서 자료를 조회하고 관리하는 소프트웨어를 DBMS라고 합니다. DBMS는 기존 파일로만 보관했을 때 발생했던 데이터들의 1)종속성과 2)중복성의 문제를 해결하기 위해 고안된 시스템으로, 데이터베이스의 구성, 접근 방법, 유지관리 등 모든 관리를 책임진다고 볼 수 있습니다.
1) 종속성의 문제란 특정 프로그램이 파일을 참조하는 상태일 때 파일에 변화가 생긴다면 프로그램이 변화된 상태의 파일을 참조할 수 있도록 경로 등을 다시 수정해줘야 하는 상태를 말합니다. 즉 참조되는 파일에 종속된 프로그램을 변화가 생길때마다 수정해줘야 하는 상태입니다.
2) 중복성의 문제는 일관성, 보안성, 경제성, 무결성 등으로 나타나는데 각각의 특징은 아래와 같습니다.
- 일관성: 같은 데이터라면 내용도 같아야 하지만 일치하지 않는 상태
- 보안성: 중복된 데이터들이 같은 수준의 보안을 유지하지 못하는 상태
- 경제성: 같은 데이터들이 중복으로 저장되어 있어 데이터 공간의 낭비 상태
- 무결성: 제어가 분산됨에 따라 데이터의 정확성이 유지되지 않는 상태
위와 같은 문제들을 해결하기 위해 DBMS는 다양한 기능을 탑재하고 있는데 1) 정의(Define), 2) 조작(Manipulate), 3) 제어(control)의 기능입니다.
1) 정의(Define)기능은 데이터베이스에 저장될 데이터의 Type(유형), 구조, 이용 방식 및 제약조건 등을 명시합니다. 데이터의 명세가 정확하게 구분되어 있어야 데이터들 간의 연산이 가능합니다.
예) 정수 형태에 실숫값을 입력하면 소수점 이하는 에러가 날 수 있음
2) 조작(Manipulate)기능은 데이터의 검색, 갱신, 삽입, 삭제 등을 지원하는 기능으로 데이터베이스 인터페이스 조작할 수 있게 해줍니다.
3) 제어(control)기능은 데이터베이스에 접근하는 갱신, 삽입, 삭제 작업을 수행할 때 무결성이 유지되도록 지원하며 사용자가 부여받은 권한의 등급에 따라 허용된 데이터만 접근할 수 있도록 보안 기능도 제공합니다. 또한, 여러 사용자가 동시에 데이터베이스를 이용할 때 항상 정확성을 유지하도록 병행 제어(먼저 온 순서대로 짧게 시간을 쪼개서 사용 권한을 사용자에게 부여하는 기능)의 기능도 제공합니다.
DBMS가 등장함에 따라 우리는 많은 양의 데이터들을 관리하기가 용이해졌습니다.
하지만 DBMS는 장점과 단점을 모두 가지고 있습니다.
장점 | 단점 |
-데이터의 중복성을 해결하여 저장공간의 효율을 높임 -저장된 자료를 공동으로 사용 가능 -데이터의 일관성이 보장됨 -데이터의 무결성이 보장됨 -보안 유지 가능 -최신의 데이터를 유지 -실시간 처리 기능 부여 |
-데이터들의 값을 입력해야 하기에 처음 구축 시 시간이 걸림 -전산화 비용이 증가 -많은 사람들이 접속 시 과부하가 발생 -파일의 Backup과 Recovery가 어려움 -처음 구축하기가 어려움 |
우리는 궁극적으로 DBMS를 데이터의 독립성을 보장하기 위한 목적으로 사용합니다.
독립성에는 1) 논리적 독립성과 2) 물리적 독립성이 있습니다.
1) 논리적 독립성은 종속성의 문제였던 응용 프로그램이 데이터에 종속되지 않도록 하기 위함입니다.
2) 물리적 독립성은 데이터를 저장하는 물리 장치를 독립시켜, 새로운 저장장치가 부착되더라도 기존의 프로그램들을 구동하기에 문제가 없게 하기 위함입니다.
데이터베이스는 평소 많이 들어본 단어였는데 시스템 내부적으로 처리하는 방식, 장점과 단점, 그리고 문제를 해결하기 위한 사용자의 조작법 등 다양한 내용들이 있습니다. 이러한 개념들을 알아야 추후 쿼리(Query)를 통해 자료 조회 및 관리를 원활하게 하실 수가 있으니 참고해 보시면 좋을 것 같습니다.
똑구의 꿀팁 블로그를 방문해주셔서 감사합니다.
'Intelligence Technology' 카테고리의 다른 글
[데이터베이스] 정규화(Normalization), 정규화 과정을 통한 종속성 제거 (0) | 2022.10.20 |
---|---|
[데이터베이스] 관계대수의 개요 및 연산자별 특징 (0) | 2022.10.12 |
[데이터베이스] 관계형 데이터베이스의 구조 (0) | 2022.10.12 |
[데이터베이스] 데이터베이스 설계 이유 및 순서는? (0) | 2022.10.10 |
[데이터베이스 언어] DDL, DML, DCL이란? (0) | 2022.10.09 |