데이터베이스는 데이터의 집합으로, 파일 형태로 산재했던 데이터, 정보들을 하나로 모아 이를 관리하고 사용자와 데이터 사이에 인터페이스 역할을 할 수 있는 S/W를 만들기 위해 정립된 개념입니다.
특징
- 데이터 독립성 지원
- 데이터베이스 시스템에서는 사용자 혹은 응용 프로그램이 직접 데이터베이스에 접근할 수 없고 반드시 DBMS를 통해서만 접근이 가능합니다.
- 데이터베이스 내에 있는 데이터의 물리적, 논리적 변화가 응용 시스템에 영향을 미치지 않도록 하여 독립성을 보장합니다.
- 데이터 무결성 유지
- 데이터베이스 시스템은 데이터베이스 내에 저장될 데이터에 대하여 데이터의 타입, 길이, 값의 범위 등에 대한 정보를 갖고 있습니다.
- 이를 위반하는 데이터가 들어올 경우 처리를 거절함으로써 데이터의 무결성을 지원합니다.
- 데이터 중복성 배제
- 데이터베이스 내의 데이터는 한 개인의 관점이나 특정 부서의 관점에서 관리되는 것이 아니라 데이터베이스를 공용하는 조직 전체의 관점에서 관리합니다.
- 때문에 동일 데이터가 여러 부서에서 사용될 경우 이를 하나로 관리함으로써 중복성을 방지하며 그 결과로 중복된 데이터 간 불일치 문제를 해결합니다.
- 데이터 표준화의 용이성
- 데이터베이스 시스템에는 별도의 데이터베이스 관리자(DBA)가 존재하며 DBA는 데이터베이스의 설계과정을 주도함으로써 부서 간 이해를 조정하고 관리될 데이터를 표준화시킬 수 있습니다.
- 높은 데이터 보안성
- 데이터베이스 시스템은 사용자의 권한에 따라 데이터베이스 내에 있는 데이터에 대한 접근을 제한할 수 있습니다.
- 저장된 데이터베이스는 일반적으로 DBMA는 통하지 않고는 외부에서 알기 어렵기 때문에 데이터가 보호됩니다.
관계형 데이터베이스 모델
용어
- 릴레이션 (relation)
- 정의: 관계형 데이터베이스에서 정보를 구분하여 저장하는 기본 단위
- 서로를 구분할 수 있는 이름을 가지며 동일한 데이터베이스 내에서 같은 이름을 가진 릴레이션은 존재할 수 없음
- 속성 (attribute)
- 정의: 표현할 개체의 구체적인 정보 항목에 해당
- 고유한 이름을 가져 동일 릴레이션 내에 같은 이름이 존재할 수 없지만, 다른 릴레이션이라면 같은 속성 이름을 공통으로 사용할 수 있음
- 튜플 (tuple)
- 정의: 개체에 속한 구성원들 개개인의 정보
- 도메인 (domain)
- 정의: 릴레이션에 포함된 각각의 속성들이 가질 수 있는 값들의 집합
※ 용어 비교 ※
E.F. Codd의 용어 | 파일 시스템 | 자주 사용되는 용어 |
릴레이션 | 파일 (file) | 테이블 (table) |
속성 | 필드 (field) | 열 (column) |
튜플 | 레코드 (record) | 행 (row) |
- 후보키 (Candidate key)
- 정의: 데이터베이스 키의 정확한 표현으로, 테이블에서 각 튜플을 구별하는 데 기준이 되는 하나 혹은 그 이상의 컬럼들의 집합이자 하나의 테이블 내에서 튜플이 중복되지 않음을 보증하는 수단
- 기본 키 (Primary key): 선택된 후보키
- 대체 키 (Alternate key): 선택되지 않은 후보키
- 복합 키 : 두 개 이상의 컬럼이 모여 키의 역할을 수행하는 경우
▶대부분의 DBMA 제품은 테이블의 기본키 컬럼들에 대해 자동으로 인덱스(index)를 생성하여 중복성 여부를 빠르게 검사하도록 지원합니다.
- 외래키 (Foreign key)
- 정의: 테이블 간의 데이터 일치와 무결성을 보증해주는 수단으로 참조키라 부르기도 함
뷰 (View)
- 정의: 하나의 테이블, 혹은 여러 테이블에 대하여 특정 사용자나 조직의 관점에서 데이터를 바라볼 수 있도록 해주는 수단으로서 가상 테이블이라고도 부름
Q. 데이터베이스의 특징에 대해 설명해주세요.
데이터베이스는 오직 DBMS를 통해서만 데이터에 접근 가능하게 만들어 DB 내 데이터의 변화가 응용 시스템에 영향을 미치지 않아 독립성을 보장합니다. 또한 저장될 데이터에 대한 타입, 길이, 범위 등에 대한 정보를 갖고 있어 이를 위반하는 데이터의 저장을 거절함으로써 무결성을 지원합니다. 데이터베이스는 특정 개인이나 부서가 아닌 조직 전체의 관점에서 관리되기 때문에 동일 데이터의 중복 저장을 방지하여 데이터 간 불일치 문제를 해결합니다.
마지막으로, 데이터베이스는 DBA가 직접 DB 설계 과정을 주도함으로써 관리할 데이터를 표준화할 수 있고, 사용자 권한에 따라 데이터베이스 내 데이터에 대한 접근을 제한하여 데이터를 보호할 수 있습니다.
Q. 데이터 무결성과 일관성의 차이에 대해 설명해주세요.
데이터 무결성(Data Integrity)은 데이터가 정확하고 일관된 상태를 유지하는 것을 의미하며, 데이터베이스에 저장된 데이터가 올바르고 완전한 상태를 유지하도록 보장합니다. 주로 데이터베이스의 테이블 간 관계, 속성의 제약, 도메인 제약 등을 통해 구현됩니다.
데이터 일관성(Data Consistency)은 데이터의 상태가 어떤 시점에서든 특정 규칙에 따라 일관된 상태를 유지하는 것을 의미합니다. 동일한 데이터가 서로 다른 위치에서 동일한 정보를 나타내고 있어야 함을 보장합니다. 주로 여러 시스템 간의 데이터 일치성을 유지하기 위해 사용합니다.
요약하면, 데이터 무결성은 데이터가 정확하고 완전한 상태를 유지하는 것을 강조하며, 데이터 일관성은 동일한 데이터가 여러 시스템 간에 일관된 상태를 유지하는 것을 강조합니다.
(추가) 참고 출처: SQL 관계형 데이터베이스 및 시스템 용어 - IBM Documentation
'CS > 데이터베이스' 카테고리의 다른 글
[DB] 2. DB 모델링의 주요 개념 (0) | 2023.11.25 |
---|---|
[ Redis ] Redis 캐싱 패턴 (0) | 2023.11.14 |
[ Redis ] SpringBoot 3.0.x + Redis로 DTO 캐싱하기 (0) | 2023.11.14 |
[Redis] Redis를 활용한 Refresh Token의 구현 및 장점 (1) | 2023.10.18 |