데이터베이스란
데이터베이스는 데이터들이 '스키마'를 통해 구조화된 방식으로 조직되어있는 데이터들의 모임입니다.
DBMS (Database Management System)
DBMS는 Concurrency Control을 통해 다수의 사람들이 데이터베이스에 접근할 수 있도록 관리해주는 소프트웨어입니다.
DBMS & File System
파일시스템은 운영체제에서 제공하는 소프트웨어로, 디스크에서 파일을 관리하며 생성, 검색, 삭제, 읽기 등의 기능을 제공합니다.
하지만 파일시스템의 경우, 동일한 파일을 동시에 수정하는 등의 상황에서 데이터의 중복, 불일치 등의 문제가 발생합니다. 또한 파일 단위로만 데이터 보안을 제공하고, 파일 내의 더 세부적인 단위로는 접근을 통제할 수 없습니다. 그리고 파일을 사용하던 중에 예상치 못한 오류가 발생하면 데이터의 상태를 보장할 수 없습니다.
DBMS는 파일시스템의 이러한 문제들을 해결할 수 있습니다. 파일시스템에는 응용프로그램이 파일에 직접 접근하여 데이터를 처리한다면, 데이터베이스에서는 DBMS를 통해 데이터에 접근합니다.
데이터베이스 기본 개념
- Entity : 데이터베이스에서 저장되어야하는 유, 무형의 객체를 의미합니다. (ex 학생, 과목, 회원 ..)
- Attribute (=Row) : Entity가 포함하는 속성을 말합니다. 예를 들어, 학생이라는 Entity에는 학번, 이름, 학년 등의 Attribute가 포함될 수 있습니다.
- Relationship : 2개 이상의 Entity 사이의 관계를 의미합니다. 예를 들어, "학생은 수업을 수강한다", "교수는 수업을 가르친다", 등의 관계가 있을 수 있습니다.
- 데이터 모델 : 데이터를 표현하기 위한 개념들을 의미합니다.
- 스키마 : 스키마는 주어진 데이터 모델을 이용하여 데이터집합을 표현한 것입니다. Relational database에서 스키마는 관계의 이름과 attribute (이름, 타입)을 명세합니다.
즉, Attribute는 Entity의 속성을 나타내고, Entity는 Attribute들로 이루어져있으며, Entity 사이에는 Relationship이 존재합니다. 그리고 이들이 나타내는 데이터집합을 명세한 것이 스키마입니다.
스키마에는 여러 종류가 있습니다.
- Physical schema : 물리적 스키마는 DBMS에서 구현될 데이터를 디스크에 물리적으로 구현하기 위한 레이아웃을 표현한 것으로, 데이터 내부의 레코드 형식, 물리적인 순서 등을 나타냅니다.
- Logical schema : 물리적인 구현에 대해서는 고려하지 않고 데이터베이스의 전체적인 조직을 논리적으로 나타냅니다. 하나의 데이터베이스에는 하나의 논리적 스키마가 존재할 수 있습니다.
- External schema (Views) : 응용 프로그램 측면에서 필요한 정보만 모아 보여주는 스키마입니다. 동일한 데이터에 대해 다양한 관점을 적용하여 여러가지의 외부 스키마를 도출해낼 수 있습니다.
DBMS를 사용하는 중요한 이유 중 하나는 데이터 독립성 (Data Independence) 입니다.
데이터 독립성 : 데이터베이스의 구조가 응용프로그램에 영향을 끼치지 않도록 하는 것 (데이터베이스에서 하위 단계에 있는 데이터의 구조가 변경되더라도 상위 단계에 영향을 주지 않는 것)
따라서 DBMS를 사용하면 애플리케이션은 데이터가 어디에, 어떻게 저장되어 있는지 등에 대해 신경쓸 필요가 없습니다.
Logical data independence : 데이터의 논리적 구조가 변경되어도 응용프로그램에 영향을 주지 않는 것
Physical data independence : 데이터베이스의 물리적 레이아웃이 변경되어도 상위 단계에 영향을 주지 않는 것
'데이터베이스' 카테고리의 다른 글
06. 데이터베이스 - Buffer Management (0) | 2022.08.10 |
---|---|
05. 데이터베이스 - File Management, Index (0) | 2022.08.08 |
04. 데이터베이스 - Disk Space Management (0) | 2022.08.06 |
03. 데이터베이스 - DBMS Architecture (0) | 2022.08.03 |
02. 데이터베이스 - SQL (0) | 2022.07.30 |