💡 Lecture/데이터베이스의 원리와 응용

3장. 데이터베이스 시스템

미미누 2023. 10. 25. 02:19

http://www.kocw.or.kr/home/cview.do?mty=p&kemId=1163794

본 글은 모두를 위한 열린 강좌 KOCW의

한양대학교 백현미 교수님의 데이터베이스의 원리와 응용 강의를 보고 정리한 글입니다.


데이터베이스 시스템(DBS; DataBase System)

- 데이터베이스에 데이터를 저장하고, 이를 관리하여 조직에 필요한 정보를 생성해주는 시스템

 

스키마와 인스턴스

스키마(schema)

 - 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것

 

 

인스턴스(instance)

 - 스키마에 따라 데이터베이스에 실제로 저장된 값


3단계 데이터베이스 구조

- 미국 표준화 기관인 ANSI/SPARC에서 제안

 

- 데이터베이스를 쉽게 이해하도록 하나의 데이터베이스를 관점에 따라 세 단계로 나눈 것

  - 외부 단계(external level): 개별 사용자 관점

  - 개념 단계(conceptual level): 조직 전체의 관점

  - 내부 단계(internal level): 물리적인 저장 장치의 관점

 

- 각 단계별로 다른 추상화(abstraction) 제공

 - 내부 단계에서 외부단계로 갈수록 추상화 레벨이 높아짐

 

3단계 데이터베이스 구조: 외부 단계

- 데이터베이스를 개별 사용자 관점에서 이해하고 표현하는 단계

- 데이터베이스 하나에 외부 스키마가 여러 개 존재할 수 있음

 

외부 스키마(external schema)

 - 외부 단계에서 사용자에게 필요한 데이터베이스를 정의 한 것

 - 서브 스키마(sub schema)라고도 함


3단계 데이터베이스 구조: 개념 단계

- 데이터베이스를 조직 전체 관점에서 이해하고 표현하는 단계

- 데이터베이스 하나에 개념 스키마가 하나만 존재함

 

개념 스키마(conceptual schema)

 - 개념 단계에서 데이터베이스 전체의 논리적 구조를 정의한 것

 - 조직 전체의 관점에서 생각하는 데이터베이스의 모습

 - 어떤 데이터가 저장되는지, 데이터들 간에는 어떤 관계가 존재하고, 제약조건이 존재하는지에 대한 정의뿐만 아니라, 데이터에 대한 보안 정책이나 접근 권한에 대한 정의도 포함

 


3단계 데이터베이스 구조: 내부 단계

 - 데이터베이스를 저장 장치의 관점에서 이해하고 표현하는 단계

 - 데이터베이스 하나에 내부 스키마가 하나만 존재함

  

 내부 스키마(conceptual schema)

 - 전체 데이터베이스가 저장 장치에 실제로 저장되는 방법을 정의한 것

 - 레코드 구조, 필드 크기, 레코드 접근 경로 등 물리적 저장 구조를 정의

 


3단계 데이터베이스 구조의 사상 또는 매핑

 

 - 스키마 사이의 대응 관계

 외부/개념 사상: 외부 스키마와 개념 스키마의 대응 관계

 - 응용 인터페이스(application interface)라고도 함

 

 개념/내부 사상: 개념 스키마와 내부 스키마의 대응 관계

 - 저장 인터페이스(storage interface)라고도 함

 

- 미리 정의된 사상 정보를 이용하여 사용자가 원하는 데이터에 접근

 

-> 데이터베이스를 3단계 구조로 나누고, 단계별로 스키마를 유지하며 대응관계를 정의하는 목적은

데이터 독립성의 실현


데이터 독립성(data independency)

하위 스키마를 변경하더라도 상위 스키마가 영향을 받지 않는 특성

 

- 논리적 데이터 독립성

 - 개념 스키마가 변경되어도 외부 스키마는 영향을 받지 않음

 - 개념 스키마가 변경되면 관련된 외부/개념 사상만 정확하게 수정하면 됨

 

- 물리적 데이터 독립성

 - 내부 스키마가 변경되어도 개념 스키마는 영향을 받지 않음

 - 내부 스키마가 변경되면 관련된 개념/내부 사상만 정확하게 수정하면 됨


데이터 정의어(DDL; Data Definition Language)

 - 스키마를 정의하거나, 수정 또는 삭제하기 위해 사용

 

데이터 조작어(DML; Data Manipulation Language)

 - 데이터의 삽입,삭제,수정,검색 등의 처리를 요구하기 위해 사용

 

 절차적 데이터 조작어(procedural DML)

 - 사용자가 어떤(what) 데이터를 원하고 그 데이터를 얻기 위해 어떻게(how) 처리해야 하는지도 설명

 

 비절차적 데이터 조작어(nonprocedural DML)

 - 사용자가 어떤(what) 데이터를 원하는지만 설명

 - 선언적 언어(declarative language)라고도 함

 

데이터 제어어(DCL; Data Control Language)

- 내부적으로 필요한 규칙이나 기법을 정의하기 위해 사용

 

사용 목적

 - 무결성: 정확하고 유효한 데이터만 유지

 - 보안: 허가받지 않은 사용자의 데이터 접근 차단, 허가된 사용자에 권한 부여

 - 회복: 장애가 발생해도 데이터 일관성 유지

 - 동시성 제어: 동시 공유 지원