본문 바로가기
자바과정/DB(Oracle)

DB 스키마

by Parkej 2021. 3. 12.

이제 DB를 공부할 차례라 스키마에 대해 알아보았습니다. 

(출처는 제가 정보처리산업기사를 공부할때 이용했던 서적을 기준으로 합니다.)


스키마(Schema) 정의

 - 스키마는  DB의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합이다.

 - 스키마는 DB를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의한다.

사용자 관점의 스키마 관계도


스키마의 특징 

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

* 데이터 사전(Data Dictionary) : DB에 저장되어 있는 모든 데이터 개체들에 대한 정보를 유지/관리 하는 시스템으로 시스템 카탈로그라고도 함.

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

 - 시간에 따라 불변인 특성을 갖음

 - 데이터의 구조적 특성을 의미, 인스턴스에 의해 규정됨.

* 인스턴스 : 데이터 개체를 구성하고 있는 속성들에 데이터 타입이 정의되어 구체적인 데이터 값을 갖고 있는것을 말함.

예)학생 개체의 인스턴스


스키마의 3계층

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

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

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

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

 - 같은 DB에 대해서도 서로 다른 관점을 정의할 수 있도록 허용한다.

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

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

 

2. 개념스키마(Conceptual Schema), 전체적인 뷰(View)

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

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

 - DB 파일에 저장되는 데이터의 형태를 나타내는 것으로, 단순히 스키마라고 하면 개념 스키마를 의미한다.

 - 기관이나 조직체의 관점에서 DB를 정의한 것이다.

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

 

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

 - 내부 스키마는 물리적 저장장치의 입장에서 본 DB 구조로 물리적인 저장장치와 밀접한 계층이다.

 - 실제로 DB에 저장될 레코드의 물리적인 구조를 정의하고 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다.

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

* 레코드는  Record, Row 혹은 Tuple이라고 불리운다.


스키마의 요소 

릴레이션 용어

 - 속성(attribute, column) : 릴레이션(테이블) 스키마의 열

    차수(degree) : 속성의 개수

 

 - 도메인(domain) : 속성이 가질 수 있는 값의 집합

 - 튜플(tuple , 레코드, row) : 릴레이션 각 행

    카디널리티(Cardinality) : 튜플의 개수

 

관계 데이터베이스
데이터베이스를 테이블와 관계로 구성
테이블은 속성과 튜플로 구성

반응형

'자바과정 > DB(Oracle)' 카테고리의 다른 글

SQL 기본 정리  (0) 2021.03.12
JDBC 프로그램 작성  (0) 2021.03.12
SQL Developer 사용법과 hr 계정 접속  (0) 2021.03.12
SQL Developer 설치  (0) 2021.03.11
Oracle SQL로 계정 생성하기(System 아이디 이용)  (0) 2021.03.11

댓글