CHAPTER 01 데이터베이스 시스템
데이터베이스의 개념
1. 통합된 데이터(integrated data)
- 여러 곳에서 사용하던 데이터를 하나로 저장
- 중복 최소화로 데이터 불일치 현상 제거
2. 저장된 데이터(stored data)
- 컴퓨터 저장 장치에 저장된 데이터
3. 운영 데이터(operational data)
- 조직의 목적을 위해 사용되는 데이터
4. 공용데이터(shared data)
- 여러 사람 또는 업무에 공동으로 사용되는 데이터
데이터베이스의 특징
1. 실시간 접근성(real time accessibility)
- 사용자가 요청하는 순간 실제 데이터를 서비스한다.
2. 계속적인 변화(continuous change)
- 삽입, 삭제, 수정 등의 작업으로 데이터의 변화를 저장한다.
3. 동시 공유(concurrent sharing)
- 데이터베이스에 접근하는 사용자 데이터 요청 프로그램이 동시에 여러 개 있다.
4. 내용에 따른 참조(reference by content)
- 데이터베이스에 저장된 데이터는 데이터 값에 따라 참조된다.
- 사용자가 원하는 데이터를 얻기 위해 데이터 값을 사용해서 조건을 제기하면 DB가 이를 검색해준다.
데이터베이스 시스템의 구성
- DBMS(Database Management System): 사용자와 데이터 베이스를 연결시켜주는 소프트웨어로 주기억장치에 상주한다.
- 데이터베이스: 데이터를 모아둔 토대
- 데이터 모델: 데이터가 저장되는 기법에 관한 내용
파일 시스템과 DBMS 비교
구분 | 파일 시스템 | DBMS |
---|---|---|
데이터 중복 | 데이터를 파일 단위로 저장하므로 중복 가능성 높음 | DBMS를 이용하여 데이터를 공유하기 때문에 중복 가능성 낮음 |
데이터 일관성 | 데이터의 중복 저장으로 일관성이 결여됨 | 증복 제거로 데이터의 일관성이 유지됨 |
관리 기능 | 보통 | 데이터 복구, 보안, 동시성 제어, 데이터 관리 기능 등을 수행 |
프로그램 개발 생산성 | 나쁨 | 짧은 시간에 큰 프로그램을 개발할 수 있음 |
기타 장점 | 별도의 소프트웨어 설치가 필요없음 | 데이터 무결성 유지, 데이터 표준 준수 용이 |
데이터베이스 언어
- SQL(Structured Query Language) 사용
데이터 정의어
- CREATE, ALTER, DROP
데이터 조작어
- SELECT, INSERT, DELETE, UPDATE
데이터 제어어
- GRANT, REVOKE
DBMS의 기능
기능 | 설명 |
---|---|
데이터 정의(Definition) | 데이터의 구조를 정의하고 데이터 구조에 대한 삭제 및 변경 기능을 수행 |
데이터 조작(Manipulation) | 데이터를 조작하는 소프트웨어(응용 프로그램)가 요청하는 데이터의 검색, 삽입, 수정, 삭제 작업을 지원 |
데이터 추출(Retrieval) | 사용자가 조회하는 데이터 혹은 응용 프로그램의 데이터를 추출 |
데이터 제어(Control) | 데이터베이스 사용자를 생성하고 모니터링하며 접근을 제어, 백업과 회복, 동시성 제어 등의 기능을 지원 |
데이터 모델
- 데이터가 어떻게 구조화되어 저장되는지 결정
- 가장 많이 사용되는 데이터 모델: 관계 데이터 모델(relational data model)
데이터베이스의 개념적 구조
1. 외부 단계
- 일반 사용자나 응용 프로그래머가 접근하는 계층
- 전체 데이터베이스 중에서 하나의 논리적인 부분 의미
- 여러 개의 외부 스키마(서브 스키마: 뷰의 개념)가 있을 수 있다.
2. 개념 단계
- 전체 데이터베이스의 정의
- 통합 조직별로 하나만 존재, DBA가 관리 → 하나의 데이터베이스에는 하나의 개념 스키마
- 독립적으로 기술되며, 데이터와 관계, 제약사항, 무결성에 대한 내용 포함
3. 내부 단계
- 물리적 저장장치에 데이터베이스가 실제로 저장되는 방법 표현
- 내부 스키마는 하나이며, 인덱스, 데이터 레코드의 배치 방법, 데이터 압축 등에 관한 사항이 포함됨.
DBMS는 매핑을 통해 각 단계의 대응 관계를 정의한다.
매핑은 개념 스키마의 어느 부분이 외부 스키마가 되는지 또는 개념 스키마가 어떤 물리적인 표현을 통해 내부 스키마가 되는지에 따라 두 가지로 나뉜다.
- 외부/개념 매핑: 사용자의 외부 스키마와 개념 스키마 간의 매핑으로, 외부 스키마의 데이터가 개념 스키마의 어느 부분에 해당되는지 대응시킨다.
- 개념/내부 매핑: 개념 스키마의 데이터가 내부 스키마의 물리적 장치 어디에 어떤 방법으로 저장되는지 대응시킨다.
데이터 독립성
- 하위 단계의 내용을 추상화하여 상위 단계에 그 세부 사항을 숨긴다.
- 이를 통해, 한 단계 내의 변경에 대해서 다른 단계와 상호 간섭이 없도록 한다.
- 일반 사용자는 사용자별로 외부 스키마가 있음
- DBA는 일반 사용자의 외부 스키마에 영향을 주지 않고 개념 스키마나 내부 스키마의 물리적인 저장 방법을 바꿀 수 있다.
논리적 데이터 독립성(logical data independence)
- 외부 단계와 개념 단계 사이이 독립성
- 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원
- 논리적 구조가 변경되어도 응용 프로그램에는 영향이 없도록 하는 개념
- 개념 스키마의 테이블을 생성하거나 변경해도, 외부 스키마가 직접 다루는 테이블이 아니면 영향 없다.
물리적 데이터 독립성(physical data independence)
- 개념 단계와 내부 단계 사이의 독립성으로, 저장장치 구조 변경과 같이 내부 스키마가 변경되어도 개념 스키마에 영향을 미치지 않도록 지원
- 물리적 독립성이 논리적 독립성보다 구현하기 쉽다.
Reference
'개발 공부 > Database' 카테고리의 다른 글
DB | 데이터 모델링 (1) | 2023.08.28 |
---|---|
DB | 데이터베이스 프로그래밍 (1) | 2023.08.27 |
DB | SQL 고급 (2) | 2023.08.27 |
DB | SQL 기초 (0) | 2023.08.25 |
DB | 관계 데이터 모델 (0) | 2023.08.25 |