C++/개인메모
데이터베이스
K.DJ
2023. 5. 30. 10:33
데이터베이스는 조직의 운영에 필요한 데이터들을 여러 사용자들이 공유하고 접근할 수 있도록 만든 데이터의 집합이다.
데이터를 조직적으로 통합하여 중복을 최소화하고 데이터들을 구조화하여 저장한다.
- 통합 데이터(Intergrated Data)
- 데이터 베이스는 여러 개의 연관된 데이터를 하나로 통합하여 저장, 관리한다. 이러한 방법으로 데이터의 중복을 최소화하고 일관성을 유지시킨다.
- 저장 데이터(Stored Data)
- 데이터베이스는 디스크, 메모리같은 컴퓨터가 접근할 수 있는 저장 매체에 데이터를 저장한다.
- 운영 데이터(Operational Data)
- 데이터베이스는 조직의 운영에 필요한 데이터를 포함한다.
- 공용 데이터(Shared Data)
- 데이터베이스는 여러 사용자 또는 응용 프로그램이 동시에 데이터에 접근하고 사용할 수 있도록 한다.
데이터베이스의 장점
- 데이터 중복 최소화
- 데이터 공유
- 일관성, 무결성, 보안성 유지
- 최신 데이터 유지
- 데이터의 표준화 가능
- 데이터의 논리적, 물리적 독립성
- 용이한 데이터 접근
- 데이터 저장 공간 절약
데이터베이스의 단점
- 데이터베이스 전문가 필요
- 많은 비용 부담
- 데이터의 백업과 복구가 어려움
- 시스템의 복잡함
- 저장 매체의 과부하 발생 우려
데이터베이스의 특징
- 실시간 접근성(Real-Time Accessibility)
- 사용자의 요청에 실시간으로 데이터를 서비스해 주어야 한다.
- 지속적인 변화(Continuous Evolution)
- 데이터베이스는 데이터의 추가, 수정, 삭제등의 작업들로 항상 최신의 데이터를 유지하여야 한다.
- 동시 공용(Concurrent Sharing)
- 데이터베이스는 여러 사용자들이 동시에 데이터에 접근할 수 있어야 한다.
- 동시 제어 매커니즘을 통해 충돌이나 데이터의 일관성 문제를 처리할 필요가 있다.
- 내용에 의한 참조(Content Reference)
- 데이터베이스는 데이터의 내용에 기반하여 데이터를 탐색해야한다.
- 사용자는 데이터의 실제 물리적 위치나 저장 방식에 대해 알 필요가 없다.
스키마(Schema)
데이터베이스의 개체(Entity), 속성(Attribute), 관계(Relationship)를 정의하여 데이터베이스의 구조와 조건을 정의한 것.
- 외부 스키마: 각 사용자들이 데이터베이스에 접근할 때 사용하는 데이터의 논리적 구조를 정의한다. 하나의 데이터베이스에는 여러개의 외부 스키마가 있을 수 있다. 전체 데이터베이스의 일부분이라고 볼 수 있으며 이러한 점 때문에 서브 스키마라고도 한다.
- 개념 스키마: 데이터베이스 전체의 논리적 구조를 정의한다. 모든 사용자들이 필요로 하는 전체 데이터 베이스로 하나만 존재한다. 데이터 베이스 관리자(DBA)에 의해서 설계 및 구성된다.
- 내부 스키마: 데이터베이스가 물리적으로 저장되는 구조를 정의한다. 레코드의 물리적 구조 및 순서가 여기에 해당된다.
테이블(Table)
- Relation(=Table): 정보를 구분하여 저장하는 기본 단위. 데이터의 집합.
- Tuple(=Record): 관계된 데이터들의 묶음. 테이블의 행
- Attribute(=Field): 개체에 대해 저장하고 싶은 항목(속성). 테이블의 열. 애트리뷰트의 수를 릴레이션의 차수라고 한다.
- Domain: 릴레이션에 포함된 각각의 속성들이 가질 수 있는 값들의 집합. 학년이란 애트리뷰트는 1~6 사이의 값만 저장할 수 있도록 하는 개념.
키(Key)
릴레이션에서 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 속성. 유일성과 최소성의 특성을 갖고있다.
- 유일성: 하나의 키 값으로 단 하나의 튜플을 식별할 수 있어야 함.
- 최소성: 키를 구성하는 애트리뷰트 중 하나를 제거하면 유일한 식별이 불가능하도록 최소한의 애트리뷰트로 구성되어야 함.
- 후보키(Candidate Key): 유일성과 최소성을 둘 다 만족하는 키의 집합
- 기본키(Primary Key): 후보키중 데이터베이스에서 사용할 키로 선택된 키.
- 대체키(Alternate Key): 후보키에서 기본키를 제외한 나머지 키.
- 슈퍼키(Super Key): 유일성을 만족하는 키의 집합.
- 고객의 데이터베이스에 ID(중복 불가능)와 이름(동명이인 가능)이라는 애트리뷰트가 있다면 (ID+이름)이라는 키는 유일성은 만족하지만 최소성은 만족하지 않는다. 이러한 경우 슈퍼키에는 포함되지만 후보키에는 포함되지 않는다고 볼 수 있다.
- 외래키(Foreign Key): 어떤 릴레이션의 애트리뷰트 혹은 애트리뷰트의 집합이 다른 릴레이션의 기본 키가 되는 키.