이 글은 데이터베이스 스터디 중 학습한 내용을 정리한 것입니다.
데이터베이스 기본 개념
데이터와 정보의 차이점
- 데이터 : 단순히 관찰하거나 측정하여 수집한 사실 이나 값
- 정보 : 데이터를 의사결정에 유용하게 활용할 수 있도록 처리하여 체계적으로 조직한 결과물
- 정보 처리 : 데이터를 상황에 맞게 분석하거나 해석하여 데이터 간의 의미를 파악
정보 시스템의 관점에서, 데이터를 저장하고 있다가 필요할 때 제공해주는 대상을 데이터베이스라고 말합니다.
데이터베이스의 정의
- 정의 : 특정 조직의 여러 사용자가 공유하여 사용할 수 있도록 통합해서 저장한 운영 데이터의 집합
- 공유 데이터 : 특정 조직의 여러 사용자가 함께 소유하고 이용 → 다른 사용자들과 함께 사용할 수 있어야 함
- 통합 데이터 : 데이터의 중복을 최소화하고 통제가 가능한 중복만 허용하는 데이터
- 저장 데이터 : 컴퓨터가 접근할 수 있는 매체에 저장해야 함.
- 운영 데이터 : 조직 운영을 위해 지속적으로 유지가능해야 함.
데이터베이스의 특성
- 실시간 접근(real-time accessibility) : 사용자의 요구에 실시간으로 응답할 수 있어야 함. 응답시간은 서비스 유형에 따라 달라짐.
- 계속 변화(continuous evolution) : DB는 현실 세계의 상태를 정확히 반영해야 의미가 있음. 현실세계가 계속 변함으로, DB는 데이터 삽입(insert), 삭제(delete), 수정(update)가 가능해야 함.
- 동시 공유(concurrent sharing) : 사용자가 서로 다른 데이터를 동시에 사용하는 것뿐만 아니라, 같은 데이터를 동시에 사용하는 것도 모두 지원해야 함.
- 내용 기반 참조(contents reference) : 데이터의 주소나 위치가 아닌 데이터의 내용(content) or 값(value)으로 참조할 수 있어야 함.
파일시스템 vs DBMS
파일 시스템은 응용 프로그램별로 필요한 데이터를 별도의 파일로 관리합니다.
위 내용은 인터넷 쇼핑몰 운영을 위해 데이터를 관리하는 모습입니다. 고객 관리 응용 프로그램과 주문 관리 응용 프로그램은 각각의 프로그램에 필요한 데이터 파일을 별도로 저장하고 관리합니다. 해당 응용 프로그램 관리자는 데이터 파일의 논리적인 구조와 물리적으로 어떻게 저장되있는지 정확히 파악하고 있어야 합니다.
파일 시스템의 단점
위와 같은 파일 시스템의 특성에 의해, 파일 시스템은 아래와 같은 단점을 갖고 있습니다.
1. 데이터의 중복.
파일 시스템에서는 응용 프로그램 별로 데이터 파일을 저장하고 관리하기 때문에, 데이터 중복 문제가 발생합니다. 데이터가 중복되면 저장 공간이 낭비될 뿐만 아니라 데이터 일관성(consistency)과 데이터 무결성(integrity)을 유지하기 어려집니다. (여기서 무결성이란 데이터가 변경되거나 파괴되지 않은 상태를 말함) 일관된 상태가 유지되지 않으면, 데이터에 대한 제약조건 또한 일관되지 않을 수 있으며, 이는 데이터 상에 결점이 존재함을 의미한다. 이에 대해 데이터 무결성이 보장되지 않는다고 말한다. 응용 프로그램들이 데이터 파일을 공유하는 방법으로 해결 가능하긴 합니다.
2. 응용 프로그램이 데이터 파일에 종속적.
데이터 파일의 구조가 변경되면, 응용 프로그램도 변경되어야 합니다. 이를 데이터 종속성이라고 말합니다. 아래와 같이 데이터 파일에 구조가 변경되면, 이에 따라 응용 프로그램도 변경해줘야 합니다. 프로그램과 데이터간에 종속적인 관계로 인해, 유지보수가 어려워질 것입니다.
3. 데이터 파일에 대한 동시 공유, 보안, 회복 기능이 부족하다.
일반 파일 시스템에서는 응용 프로그램 하나가 사용 중인 파일을 다른 응용 프로그램이 접근하여 사용할 수 있는 동시 공유 기능을 제공하지 않습니다. 각 프로그램 별로 파일을 관리하면 해결되지만, 이는 첫번째 이슈인 중복 저장 문제와 충돌됩니다.
파일 시스템에서는 사용자에게 파일에 대한 권한을 읽기, 수정, 실행의 권한을 부여하는 방식으로 파일에 대한 접근을 통제한다. 데이터 보안에 대한 요구가 세분화되면서, 파일 내부의 레코드나 필드에 대한 접근 통제 기능이 필요해졌습니다. 파일 시스템은 이를 충족시키지 못합니다. 또한, 파일 시스템에서는 프로그램이 파일을 사용하는 도중 장애가 발생할 경우, 파일을 일관된 상태로 회복하기 어렵다는 단점을 갖고 있습니다.
4. 응용 프로그램 개발이 쉽지 않다.
새로운 응용 프로그램 개발 시, 기본적인 데이터 관리 기능을 모두 포함해야 됩니다.
문제를 해결하고자 등장한 DBMS
DBMS는 파일 시스템이 가진 중복과 종속 문제를 해결하기 위해 제시된 소프트웨어입니다. 데이터베이스를 생성하고 접근하며 관리하는 일은 DBMS가 모두 담당하게 됩니다. 사용자나 응용 프로그램은 데이터베이스의 물리적 저장 구조나 데이터 접근 및 처리 방법 등을 자세히 알 필요가 없어 부담이 줄어듭니다. 또한, DB의 구조나 접근 방법이 변경되어도, 응용 프로그램을 변경할 필요가 없어, 데이터 독립성을 확보할 수 있습니다.
DBMS의 주요 기능은 아래와 같습니다.
- 정의 기능 : 데이터베이스 구조를 정의하거나 수정할 수 있다.
- 조작 기능 : 데이터를 삽입, 삭제, 수정, 검색하는 연산을 할 수 있다.
- 제어 기능 : 데이터를 항상 정확하고 안전하게 유지할 수 있다.
파일 시스템과 비교한 DBMS의 장점은 다음과 같습니다
- 데이터 중복을 통제할 수 있다.
- 데이터 독립성이 확보된다 : 데이터베이스의 구조가 변경되어도, 응용 프로그램이 영향을 받지 않게된다.
- 데이터를 동시 공유할 수 있다 : 여러 응용 프로그램이 통합된 데이터를 공유하여 같은 데이터에 동시 접근할 수 있도록 지원한다.
- 데이터 보안이 향상된다 : 데이터베이스를 이용해 데이터를 중앙 집중식으로 관리하기 때문에, 데이터에 대한 효율적인 접근 제어가 가능하다.
- 데이터 무결성을 유지할 수 있다 : 데이터에 대한 관리를 중앙 집중식으로 수행하기 때문에, 데이터에 대한 연산이 수행될 때마다 데이터의 유효성을 검사하여, 데이터 무결성을 유지할 수 있게 한다.
- 표준화할 수 있다 : 데이터에 대한 구조, 접근 방법 등을 DBMS에서 관리하기 때문에, 응용 프로그램은 DBMS가 정의한 표준에 따라 DB에 접근한다.
- 장애 발생 시 회복이 가능하다 : DBMS는 장애가 발생하더라도, 복구하는 기능을 제공한다.
- 응용 프로그램 개발 비용이 줄어든다 : 데이터에 대한 관리를 DBMS가 수행하기 때문에, 응용 프로그램은 프로그램 로직에만 집중할 수 있다. 또한, DB 구조가 변경되어도, 응용 프로그램을 변경할 필요가 없어, 유지보수 비용이 줄어든다.
RDBMS란?
RDBMS는 관계형 데이터베이스를 관리하는 시스템을 말한다. 관계형 데이터베이스(RDB)란 테이블, 레코드 및 열로 구성된 여러 데이터 세트의 집합이다. RDB에서 테이블들은 관계를 맺을 수 있으며, 여기서 관계는 테이블 간의 상호작용을 기반으로 설정된 논리적 연결을 의미합니다.
참고자료
'CS > 데이터베이스' 카테고리의 다른 글
[DB] SQL 개요 (0) | 2024.01.17 |
---|---|
[DB] Real MySQL 8.0 - 4.1 MySQL 아키텍처 (0) | 2024.01.12 |
[DB] 데이터베이스 기본개념 관련 질문정리 (2) | 2024.01.11 |
[DB] 데이터 모델링 (0) | 2024.01.11 |
[DB] 스키마와 데이터베이스 3단계 구조 (0) | 2024.01.10 |