발전을 위한 기록

1과목 데이터베이스 - 스키마, DB언어, DB사용자 본문

정보처리

1과목 데이터베이스 - 스키마, DB언어, DB사용자

릴릴2 2021. 5. 17. 14:07

스키마(Schema)

 

정의

스키마는 Database의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합이다. DB를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의한다.

 

특징

- 스키마는 데이터 사전(Data Dictionary)에 저장되며, 다른 이름으로 메타데이터(Meta-Data)라고도 한다.

- 스키마는 현실 세계의 특정한 한 부분의 표현으로 트ㄱ정 데이터 모델을 이용해서 만들어진다. 

- 스키마는 시간에 따라 불변인 특성을 갖는다.

 - 스키마는 데이터의 구조적 특성을 의미하며, 인스턴스에 의해 규정된다. 

 

스키마 3계층

1) 외부스키마(External Schema) = 서브 스키마 = 사용자 뷰

 - 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것이다.

 - 전체 데이터베이스의 한 논리적인 부분으로 볼 수 있으므로 서브 스키마라고도 한다.

 - 하나의 데이터베이스 스시템에 여러 개의 외부 스키마가 존재할 수 있으며, 하나의 외부 스키마를 여러개의 응용 프로그램이나 사용자가 공용할 수 있다. 

 - 일반 사용자는 질의어(SQL)를 이용하여 데이터베이스에 쉽게 사용할 수 있다. 

 - 응용 프로그래머는 COBOL, C 등의 언어를 사용하여 DB에 접근한다. 

 

2) 개념 스키마(Conceptual Schema) = 전체적인 뷰

 - 데이터베이스의 전체적인 논리적 구조로서, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직       전체의 데이터베이스로 하나만 존재한다. 

 - 개체간의 관계와 제약 조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의한다. 

 - 단순히 스키마라고 하면 개념 스키마를 의미한다. 

 - 기관이나 조직체의 관점에서 데이터베이스를 정의한 것

 - 데이터베이스 관리자(DBA)에 의해서 구성된다. 

 

3) 내부 스키마(Internal Schema) = 저장스키마(Storage Schema)

 - 물리적 저장장치의 입장에서 본 데이터베이스 구조

 - 내부 스키마는 물리적구조를 정의하고, 저장 데이터 항복의 표현방법, 내부 레코드의 물리적 순서 등을 나타낸다.

 - 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마이다.

 


데이터베이스 언어

 

1) 데이터 정의 언어(DDL, Data Definition Language)

 - DB구조, 데이터 형식, 접근 방식 등 DB를 구축하거나 수정할 목적으로 사용하는 언어

 - 데이터 사전(Data Dictionary)이라는 특별한 파일에 여러 개의 테이블로서 저장

 

 1-1) DDL의 기능

  - 외부 스키마 명세를 정의

  - 데이터베이스의 논리적, 물리적 구조 및 구조 간의 사상 정의

  - 스키마에 사용되는 제약 조건에 대한 명세를 정의 

  - 데이터의 물리적 순서를 규정

 

2) 데이터 조작 언어(DML, Data Manipulation Language)

 - 사용자로 하여금 데이터를 처리할 수 있게 하는 도구

 - 사용자와 DBMS간의 인터페이스 제공

 - COBOL, FORTRAN 등의 호스트 언어에 DB 기능을 추가해서 만든 언어

 - 대표적인 DML은 질의어가 있다. 

 - 질의어는 터미널에서 주로 이용하는 데이터 언어

 

 2-1) DML의 형태

  Ⅰ) 절차적 조작 언어

     - 사용자가 어떤 데이터가 필요하면, 필요한 데이터를 어떻게 구하는지 절차에 맞게 구체적으로 명시하는 언어

  Ⅱ) 비절차적 조작 언어

     - 사용자가 어떤 데이터가 필요한지를 명시하고 어떻게 구하는지 명시하지 않는 언어, 배우기 쉽지만 효율성 떨어짐

 

 2-2) DML의 조건

  - 자연언어에 가깝고 사용하기 쉬움

  - 데이터 연산뿐만 아니라 뷰 내의 데이터나 데이터 간의 관계를 명확하게 명시할 수 있어야 한다. 

  - 데이터 언어의 효율적인 구현을 지원해야한다.

 

3) 데이터 제어 언어(DCL, Data Control Language)

 - 무결성, 보안 및 권한 제어, 회복 등을 위한 언어

 - 데이터를 보호하하고 데이터를 관리하는 목적

 

 3-1) DCL 기능

  - 데이터를 보호하기 위한 데이터 보안

  - 데이터 정확성을 위한 무결성 유지 

  - 시스템 장애에 대비한 데이터 회복과 병행수행 제어

 


데이터베이스 사용자 

 

1) DBA(DataBase Administrator)

 - 데이터베이스 시스템의 모든 관리와 운영에 대한 책을 지고 있는 사람이나 그룹

데이터베이스 설계와 조작에 대한 책임 - DB구성 요소 결정 
- 개념 스키마 및 내부 스키마 정의 
- DB의 저장 구조 및 접근 방법 정의 
- 보안 및 데이터베이스의 접근 권한 부여 정책 수립
- 장애에 대비한 예비(Back Up)조치와 회복(Recovery)에 대한 전략 수립
- 무결성을 위한 제약 조건의 지정
- 데이터 사전의 구성과 유지 관리 
- 사용자의 변화 요구와 성능 향상을 위한 데이터베이스의 재구성
행정 책임 - 사용자의 요구와 불평의 청취 및 해결
- 데이터 표현 방법의 표준화
- 문서화에 대한 기준 설정
- 데이터베이스 사용에 관한 교육
시스템 감시 및
성능 분석
- 변화 요구에 대한 적응과 성능 향상에 대한 감시
- 시스템 감시 및 성능 분석
- 자원의 사용도와 병목 현상 조사
- 데이터 사용 추세, 이용 형태 및 각종 통계 등을 종합, 분석

 

2) 응용 프로그래머

- 일반 호스트 언어로 프로그램을 작성할 때 데이터 DML를 삽입해서 일반 사용자가 응용 프로그램을 사용할 수 있게, 인터페이스를 제공할 목적으로 데이터베이스에 접근하는 사람들

- C, COMOL, PASCAL 등의 호스트 언어와 DBMS가 지원하는 데이터 조작어에 능숙한 컴퓨터 전문가

 

3) 일반 사용자

- 보편적으로 터미널을 이용하여 데이터베이스에 있는 자원을 활용할 목적으로 질의어나 응용프로그램을 사용하여 데이터베이스에 접근하는 사람들

728x90