데이터 모델의 개념
▶데이터 모델의 정의
- 데이터 모델은 현실세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화하여 체계적으로 표현한 개념적 모형이다
- 데이터 모델은 데이터 데이터의 관계, 데이터의 의미 및 일관성, 제약조건 등을 기술하기 위한 개념적 도구들의 모임이다.
- 현실 세계를 데이터베이스에 표현하는 중간과정, 즉 데이터베이스 설계 과정에서 데이터의 구조를 논리적으로 표현하기 위해 사용되는 도구이다.
- 데이터의 구조(Schema)를 논리적으로 묘사하기 위해 사용되는 지능적 도구이다.
▶데이터 모델의 종류
개념적 데이터 모델
- 개념적 데이터 모델은 현실 세계에 대한 인가느이 이해를 돕기 위해 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정이다.
- 개념적 데이터 모델은 속성들로 기술된 개체 타입과 이 개체 타입들 간의 관계를 이용하여 현실 세계를 표현한다.
- 개념적 데이터 모델은 현실 세계에 존재하는 개체를 인간이 이해할 수 있는 정보구조로 표현하기 때문에 정보 모델이라고도 한다.
- 대표적인 개념적 데이터 모델로는 E-R 모델이 있다.
논리적 데이터 모델
- 논리적 데이터 모델은 개념적 모델링 과정에서 얻은 개념적 구조를 컴퓨터가 이해하고 처리할 수 있는 컴퓨터 세계의 환경에 맞도록 변환하는 과정이다.
- 논리적 데이터 모델은 필드로 기술된 데이터 타입과 이 데이터 타입들 간의 관계를 이용하여 현실 세계를 표현한다.
- 단순히 데이터 모델이라고 하면 논리적 데이터 모델을 의미한다.
- 특정 DBMS는 특정 논리적 데이터 모델 하나만 선정하여 사용한다.
- 논리적 데이터 모델은 데이터 간의 관계를 어떻게 표현하느냐에 따라 관계 모델, 계층 모델, 네트워크 모델로 구분한다.
▶데이터 모델에 표시할 요소
-
구조(Structure): 논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질을 표현한다.
-
연산(Operation): 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세로서 데이터베이스를 조작하는 기본 도구이다.
-
제약 조건(Constraint): 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건이다.
▶데이터 모델의 구성요소
개체(Entity)
-
개체는 데이터베이스에 표현하려는 것으로, 사람이 생각하는 개념이나 정보 단위같은 현실 세계의 대상체이다.
-
개체는 실세계에 독립적으로 존재하는 유형, 무형의 정보로서 서로 연관된 몇 개의 속성으로 구성된다.
-
파일 시스템의 레코드에 대응하는 것으로 어떤 정보를 제공하는 역할을 수행한다.
-
독립적으로 존재하거나 그자체로서도 구별 가능하다.
속성(Attribute)
-
속성은 데이터의 가장 작은 논리적 단위로서 파일 구조상의 데이터 항목 또는 데이터 필드에 해당한다.
-
속성은 개체를 구성하는 항목이다.
관계(Relationship)
개체 간의 관계 또는 속성 간의 관계이다.
관계의 형태
- -1 : 1: 개체 집합 A의 각 원소가 개체 집합 B의 원소 한 개와 대응하는 관계
- -1 : n: 개체 집합 A의 각 원소는 개체 집합 B의 원소 여러 개와 대응하고 있지만, 개체 집합 B의 각 원소는 개체 집합 A의 원소 한 개와 대응하는 관계
- -n : m: 개체 집합 A의 각 원소는 개체 집합 B의 원소 여러 개와 대응하고, 개체 집합 B의 각 원소도 개체 집합 A의 원소 여러 개와 대앙하는 관계
데이터베이스 사용자
▶DBA(DataBase Administrator)
데이터베이스 시스템의 모든 관리와 운영에 대한 책임을 지고 있는 사람이나 그룹으로 다음과 같은 역할을 한다.
데이터베이스 설계와 조작에 대한 책임
- 데이터베이스 구성 요소 결정
- 개념 스키마 및 내부 스키마 정의
- 데이터베이스의 저장 구조 및 접근 방법 정의
- 보안 및 데이터베이스의 접근 권한 부여 정책 수립
- 장애에 대비한 예비(Back up)조치와 회복(Recovery)에 대한 전략 수집
- 무결성을 위한 제약 조건의 지정
- 데이터 사전의 구성과 유지 관리
- 사용자의 변화 요구와 성능 향상을 위한 데이터베이스의 재구성
행정책임
- 사용자의 요구와 불평의 청취 및 해결
- 데이터 표현 방법의 표준화
- 문서화에 대한 기준 설정
- 데이터베이스 사용에 관한 교육
시스템 감시 및 성능분석
- 변화 요구에 대한 적응과 성능 향상에 대한 감시
- 시스템 감시 및 성능 분석
- 자원의 사용도와 병목 현상 조사
- 데이터 사용 추세, 이용 형태 및 각종 통계 등을 종합, 분석
▶응용 프로그래머
- 응용 프로그래머는 일반 호스트 언어로 프로그램을 작성할 때 데이터 조작어(DML)을 삽입해서 일반 사용자가 응용 프로그램을 사용할 수 있게 인터페이스를 제공할 목적으로 데이터베이스에 접근하는 사람들이다.
- 응용 프로그래머는 C, COBOL, PASCAL 등의 호스트 언어와 DBMS가 지원하는 데이터 조작어에 능숙한 컴퓨터 전문가이다.
▶일반 사용자
일반 사용자는 보통 터미널을 이용하여 데이터베이스에 있는 자원을 활용할 목적으로 질의어나 응용 프로그램을 사용하여 데이터베이스에 접근하는 사람들이다.
'데이터베이스 > 데이터베이스의 개념' 카테고리의 다른 글
데이터베이스 언어 (0) | 2019.07.15 |
---|---|
스키마(Schema) (0) | 2019.07.15 |
DBMS의 기능 (0) | 2019.07.15 |
데이터베이스의 개념 (0) | 2019.07.15 |
정보 시스템과 자료 처리 시스템 (0) | 2019.07.15 |
데이터베이스 언어
- 데이터베이스 언어(Database Language)는 데이터베이스를 구축하고 이용하기 위한 데이터베이스 시스템과 통신 수단이다.
- 데이터베이스 언어는 DBMS를 통해 사용하며,기능과 사용 목적에 따라 데이터 정의 언어, 데이터 조작 언어, 데이터 제어 언어로 구분된다.
▶데이터 정의 언어(DDL; Data Definition Language)
- 데이터 정의 언어(DDL)는 DB구조, 데이터 형식, 접근 방식 등 DB를 구축하거나 수정할 목적으로 사용하는 언어이다.
- 데이터 정의 언어는 번역한 결과가 데이터 사전(Data Dictionary)이라는 특별한 파일에 여러 개의 테이블로서 저장된다.
데이터 정의 언어의 기능
- 외부 스키마 명세를 정의한다.
- 데이터베이스의 논리적, 물리적 구조 및 구조 간의 사상을 정의한다.
- 스키마에 사용되는 제약 조건에 대한 명세를 정의한다.
- 데이터의 물리적인 순서를 규정한다.
▶데이터 조작 언어(DML; Data Manipulation Language) = 서브 언어
- 데이터 조작 언어(DML)는 사용자로 하여금 데이터를 처리할 수 있게 하는 도구로서, 사용자(응용 프로그램)와 DBMS 간의 인터페이스를 제공한다.
- 응용 프로그램을 통하여 사용자가 DB의 데이터를 실질적으로 조작할 수 있도록 하기 위해 FORTRAN, COBOL 등의 호스트 언어에 DB 기능을 추가해서 만든 언어이다.
- 대표적인 데이터 조작 언어(DML)에는 질의어가 있으며, 질의어는 터미널에서 주로 이용하는 비절차적(Non Procedural) 데이터 언어이다.
데이터 조작어의 형태
- 절차적 조작 언어: 사용자가 어떤 데이터가 필요하면, 필요한 데이터를 어떻게 구하는지 절차에 맞게 구체적으로 명시하는 언어
- 비절차적 조작 언어: 사용자가 어떤 데이터가 필요한지만을 명시하고 어떻게 구하는지 명시하지 않는 언어로서, 배우기 쉽고 사용하기 쉬우나 코드의 효율성 면에서 비효율적이다.
데이터 조작어의 조건
- 사용하기 쉽고 자연 언어에 가까워야 한다.
- 데이터에 대한 연산뿐만 아니라 뷰 내의 데이터나 데이터 간의 관계를 정확하고 완전하게 명시할 수 있어야 한다.
- 데이터 언어의 효율적인 구현을 지원해야 한다. 즉 데이터 언어의 구문이 DBMS가 제공하는 기본적인 연산과 관련을 갖도록 해야 한다.
+ 질의어(Query Language)
- 단말 사용자가 쉽게 DB를 엑세스할 수 있도록 대화식의 자연어로 만든 비절차적 조작 언어
- 독자적이고 상호 작용 형태로 터미널에서 많이 사용하는 고급 명령어 형태의 독립된 데이터 조작 언어
- 질의어의 종류: SQL, IMS, DBTG, TOTAL 등
▶데이터 제어 언어(DCL; Data Control Language)
- 데이터 제어 언어(DCL)는 무결성, 보안 및 권한 제어, 회복 등을 하기 위한 언어이다.
- 데이터 제어 언어(DCL)는 데이터를 보호하고 데이터를 관리하는 목적으로 사용된다.
데이터 제어 언어의 기능
- 불법적인 사용자로부터 데이터를 보호하기 위한 데이터 보안(Security)
- 데이터 정확성을 위한 무결성(Integrity) 유지
- 시스템 장애에 대비한 데이터 회복과 병행수행 제어
'데이터베이스 > 데이터베이스의 개념' 카테고리의 다른 글
데이터베이스 사용자 (0) | 2019.07.16 |
---|---|
스키마(Schema) (0) | 2019.07.15 |
DBMS의 기능 (0) | 2019.07.15 |
데이터베이스의 개념 (0) | 2019.07.15 |
정보 시스템과 자료 처리 시스템 (0) | 2019.07.15 |
스키마(Schema)
▶스키마의 정의
스키마는 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세(Specification)를 기술(Description)한 메타데이터(Meta-Data)의 집합이다.
스키마는 데이터베이스를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의한다.
스키마는 사용자의 관점에 따라 외부 스키마, 개념 스키마, 내부 스키마로 나누어진다.
▶스키마의 특징
- 스키마는 데이터 사전(Data Dictionary)에 저장되며, 다른 이름으로 메타데이터(Meta-Data)라고도 한다.
- 스키마는 현실 세계의 특정한 한 부분의 표현으로서 특정 데이터 모델을 이용해서 만들어진다.
- 스키마는 시간에 따라 불변인 특성을 갖는다.
- 스키마는 데이터의 구조적 특성을 의미하며, 인스턴스에 의해 규정된다.
▶스키마의 3계층
데이터베이스 관리 시스템은 외부적 스키마에 따라 명시된 사용자의 요구를 개념적 스키마에 적합한 형태로 변경하고 이를 다시 내부적 스키마에 적합한 형태로 변환한다.
외부 스키마(External Schema) = 서브 스키마 = 사용자 뷰(View)
- 외부 스키마는 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것이다.
- 외부 스키마는 전체 데이터베이스의 한 논리적인 부분으로 불 수 있으므로 서브 스키마(Sub Schema)라고도 한다.
- 하나의 데이터베이스 시스템에는 여러 개의 외부 스키마가 존재할 수 있으며, 하나의 외부 스키마를 여러 개의 응용 프로그램이나 사용자가 공용할 수도 있다.
- 같은 데이터베이스에 대해서도 서로 다른 관점을 정의할 수 있도록 허용한다.
- 일반 사용자는 질의어(SQL)를 이용하여 DB를 쉽게 사용할 수 있다.
- 응용 프로그래머는 COBOL, C 등의 언어를 사용하여 DB에 접근하다.
개념 스키마(Coneptual Schema) = 전체적인 뷰(View)
- 개념 스키마는 데이터베이스의 전체적인 논리적 구조로서, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로 하나만 존재한다.
- 개념 스키마는 개체 간의 관계나 제약 조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의한다.
- 데이터베이스 파일에 저장되는 데이터의 형태를 나타내는 것으로, 단순히 스키마(Schema)라고 하면 개념 스키마를 의미한다.
- 기관이나 조직체의 관점에서 데이터베이스를 정의한 것이다.
- 데이터베이스 관리자(DBA)에 의해서 구성된다.
내부 스키마(Internal Schema) = 저장 스키마(Storage Schema)
- 내부 스키마는 물리적 저장장치의 입장에서 본 데이터베이스 구조로, 물리적인 저장장치와 밀접한 계층이다.
- 내부 스키마는 실제로 데이터베이스에 저장될 레코드의 물리적인 구조를 정의하고, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다.
- 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마이다.
'데이터베이스 > 데이터베이스의 개념' 카테고리의 다른 글
데이터베이스 사용자 (0) | 2019.07.16 |
---|---|
데이터베이스 언어 (0) | 2019.07.15 |
DBMS의 기능 (0) | 2019.07.15 |
데이터베이스의 개념 (0) | 2019.07.15 |
정보 시스템과 자료 처리 시스템 (0) | 2019.07.15 |
DBMS의 기능
▶DBMS(DataBase Management System)의 정의
-
DBMS란 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고, 데이터베이스를 관리해 주는 소프트웨어이다.
-
DBMS는 기존의 파일 시스템이 갖는 데이터의 종속성과 중복성의 문제를 해결하기 위해 제안된 시스템으로, 모든 응용 프로그램들이 데이터베이스를 공용할 수 있도록 관리해 준다.
-
DBMS는 데이터베이스의 구성, 접근 방법, 유지보수에 대한 모든 책임을 진다.
▶DBMS의 발전 배경
종래의 파일 처리 방식에서의 데이터 구성
종래의 파일 처리 방식에서는 처리 업무 하나하나마다 데이터 파일을 독립적으로 구성함으로써, 같은 내용의 데이터가 서로 다른 업무의 파일에서 중복 저장되어 관리되는 데이터 중복성과, 응용 프로그램과 데이터 간의 상호 의존 관계에 따른 데이터 종속성을 초래하는 단점이 있다.
종속성으로 인한 문제점: 응용프로그램과 데이터 파일이 상호 의존적인 관계에서는 데이터 파일이 보조기억장치에 저장되는 방법이나 저장된 데이터의 접근방법을 변경할 때 응용 프로그램도 같이 변경하여야 한다.
중복성으로 인한 문제점
-
일관성: 중복된 데이터 간에 내용이 일치하지 낳는 상황이 발생하여 일관성이 없어진다.
-
보안성: 중복되어 있는 모든 데이터에 동등한 보안수준을 유지하기가 어렵다.
-
경제성: 저장공간의 낭비와 동일한 데이터의 반복 작업으로 비용이 증가한다.
-
무결성: 제어의 분산으로 데이터의 정확성을 유지할 수 없다.
데이터베이스 도입에서의 데이터 구성
데이터베이스를 이용하는 방식에서는 각 업무 처리에 필요한 자료들의 중복을 최소화하여 한 곳에 모아서 구성한다.
▶DBMS의 필수기능
-
정의(조직)(Definition) 기능
-모든 응용 프로그램들이 요구하는 데이터 구조를 지원하기 위해 데이터베이스에 저장될 데이터의 형(Type)과 구조에 대한 정의, 이용 방식, 제약 조건 등을 명시하는 기능이다.
-데이터와 데이터의 관계를 명확하게 명세할 수 있어야 하며, 원하는 데이터 연산은 무엇이든 명세할 수 있어야 한다.
-
조작(Manipulation) 기능: 데이터 검색, 갱신, 삽입, 삭제 등을 체계적으로 처리하기 위해 사용자와 데이터베이스 사이의 인터페이스 수단을 제공하는 기능이다.
- 제어(Control) 기능
-데이터베이스를 접근하는 갱신, 삽입, 삭제 작업이 정확하게 수행되어 데이터의 무결성이 유지되도록 제어해야 한다.
-정당한 사용자가 허가된 데이터만 접근할 수 있도록 보안(Security)을 유지하고 권한(Authority)을 검사할 수 있어야 한다.
-여러 사용자가 데이터베이스를 동시에 접근하여 데이터를 처리할 때 처리 결과가 항상 정확성을 유지하도록 병행 제어(Concurrency Control)를 할 수 있어야 한다.
▶DBMS의 장·단점
장점 |
단점 |
|
|
'데이터베이스 > 데이터베이스의 개념' 카테고리의 다른 글
데이터베이스 사용자 (0) | 2019.07.16 |
---|---|
데이터베이스 언어 (0) | 2019.07.15 |
스키마(Schema) (0) | 2019.07.15 |
데이터베이스의 개념 (0) | 2019.07.15 |
정보 시스템과 자료 처리 시스템 (0) | 2019.07.15 |
데이터베이스의 개념
▶데이터베이스의 정의
데이터베이스는 특정 조직의 업무를 수행하는 데 필요한 상호 관련된 데이터들의 모임이다.
- 통합된 데이터(Integrated Data): 자료의 중복을 배제한 데이터의 모임이다.
- 저장된 데이터(Stored Data): 컴퓨터가 접근할 수 있는 저장 매체에 저장된 자료이다.
- 운영 데이터(Operational Data): 조직의 고유한 업무를 수행하는 데 존재 가치가 확실하고 없어서는 안 될 반드시 필요한 자료이다.
- 공용 데이터(Shared Data): 여러 응용 시스템들이 공동으로 소유하고 유지하는 자료이다.
▶데이터 베이스의 특징
- 실시간 접근성(Real-Time Acessiblity): 수시적이고 비정형적인 질의(조회)에 대하여 실시간 처리에 의한 응답이 가능해야 한다.
- 계속적인 변화(Continuous Evolution): 데이터베이스의 상태는 동적이다. 즉 새로운데이터의 삽입(Insertion), 삭제(Deletion), 갱신(Undate)으로 항상 최신의데이터를 유지해야 한다.
- 동시 공용(Concurrent Sharing): 데이터베이스는 서로 다른목적을 가진 여러 응용자들을 위한 것이므로 다수의 사용자가 동시에 같은 내용의 데이터를 이용할 수 있어야 한다.
- 내용에 의한 참조(Content Reference): 데이터베이스에 있는 데이터를 참조할 때 데이터 레코드의 주소나 위치에 의해서가 아니라, 사용자가 요구하는 데이터 내용으로 데이터를 찾는다.
▶데이터베이스 시스템
데이터베이스 시스템의 정의
데이터베이스 시스템이란 데이터베이스를 이용하여 자료를 저장하고 관리하여 정보를 얻어내는 데 필요한 컴퓨터 중심의 시스템을 말한다.
- 데이터베이스 시스템의 구성요소
- 데이터베이스
- 스키마
- DBMS(데이터베이스 관리 시스템)
- 데이터베이스 언어
- 데이터베이스 컴퓨터
- 데이터베이스 사용자
'데이터베이스 > 데이터베이스의 개념' 카테고리의 다른 글
데이터베이스 사용자 (0) | 2019.07.16 |
---|---|
데이터베이스 언어 (0) | 2019.07.15 |
스키마(Schema) (0) | 2019.07.15 |
DBMS의 기능 (0) | 2019.07.15 |
정보 시스템과 자료 처리 시스템 (0) | 2019.07.15 |