2014/04/11 - [Database System] - Chapter 3


관계 모델의 개념


- 관계 모델에서 데이터베이스는 릴레이션들의 모임으로 표현된다.

- 릴레이션은 투플(행, 레코드)들의 집합으로 표현된다.

- 투플은 애트리뷰트(컬럼, 필드 혹은 속성)들로 구성된다.


① ER모델과의 비교

- 행: 엔티티 혹은 관계에 해당하는 사실을 표현함

- 열: 애트리뷰트들을 표시함

② 관계 모델의 용어

- 행: 투플

- 열: 애트리뷰트(속성)

- 테이블: 릴레이션



관계 제약 조건과 관계형 데이터베이스 스키마


1. 도메인 제약조건

각 애트리뷰트 A의 값은 반드시 A의 도메인 에 속하는 원자값이어야 한다.

- 도메인과 관련된 데이터 타입

- 정수, 실수와 같은 표준 숫자형
- 문자, 고정길이 문자열, 가변길이 문자열
- 날짜, 시간
- 화폐단위
- 메모 등


2. 키 제약조건

- 서로 다른 두 투플은 동일한 키 애트리뷰트를 가질 수 없다. (릴레이션 인스턴스 내에서 같은 값이 절대로 중복되지 않는 속성이다.)
- 키는 최소의 슈퍼키(minimal superkey)


3. 엔티티 무결성 제약조건

- 어떠한 기본 키 값도 널 값을 가질 수 없다는 제약 조건이다.
- 기본키가 각 투플들을 식별하는 데에 이용되기 때문이다.


4. 참조 무결성 제약조건

- 참조 무결성은 두 릴레이션에 대한 제약조건이다.

- 한 릴레이션 의 투플 이 다른 릴레이션 의 투플 을 참조할 때의 제약조건이다.

: 참조하는 릴레이션

: 참조되는 릴레이션



갱신 연산과 제약조건의 위반 처리


- 릴레이션에 투플을 삽입하거나 삭제 변경할 때 제약조건을 만족하는 검사한다.


1. 갱신 연산

- 갱신 연산은 기본적으로 "삭제 후 삽입" 연산으로 간주할 수 있으므로 삽입과 삭제시의 문제점이 모두 나타난다.

- 기본 키(PK)나 외래키(FK)가 아닌 애트리뷰트 값의 변경은 문제가 없다.


2. 제약조건의 위반 처리

- 삭제를 거부한다.

- 삭제되는 투플을 참조하는 투플들까지 모두 삭제한다.(연쇄 삭제)

- 삭제되는 투플을 참조하는 투플에서 외래키 값을 널로 바꾸거나 다른 유효한 투플을 참조하도록 변경한다.

'Database > Database System 정리' 카테고리의 다른 글

Chapter 2 정리  (0) 2014.04.21
Chapter 1 정리  (0) 2014.04.16

2014/04/11 - [Database System] - Chapter 2


데이터 모델


1. 고수준 또는 개념적 데이터 모델(개체 관계)

- 사용자들이 데이터를 인식하는 방식에 대한 개념을 제공

- ER 모델, SDM 모델, DAPLEX 모델, ...


2. 데이터 모델들의 구현(레코드 기반, 객체지향)

- 고수준 모델과 저수준 모델 사이에 존재

- 일반 사용자들이 이해할 수 있는 개념을 제공

- 데이터 저장 구조의 세부 사항을 은폐하지만, 컴퓨터 상에서 직접 구현 가능함

- 상용 DBMS에서 많이 사용함

- 계층 모델, 네트워크 모델, 관계 모델


3. 저수준 또는 물리적 데이터 모델

- 어떻게 데이터가 컴퓨터에 저장되는지의 세부 사항을 명시하는 개념을 제공



스키마


1. 외부 스키마

- 외부 스키마나 사용자 뷰들을 포함
- 특정 사용자 그룹이 관심을 갖는 부분을 나타내고 나머지는 은폐함


2. 개념 스키마

- 개념 스키마를 가지며, 이는 전체 사용자를 위한 데이터베이스의 구조를 기술함
- 엔티티, 데이터 타입, 관계, 사용자 연산, 제약 조건들을 나타내는데 중점

3. 내부 스키마

- 내부 스키마를 가지며, 내부 스키마는 물리적 데이터 모델을 사용
- 데이터 저장구조의 세부 사항과 데이터베이스에 대한 접근 경로를 기술



데이터베이스 상태


- 데이터베이스는 새 학생을 추가하거나 한 학생에게 새 학점을 부여할 때마다 매번 변한다. 어떤 특정 시점에 데이터베이스에 들어 있는 데이터를 데이터베이스 상태라 한다.



논리적, 물리적 데이터 독립성


① 논리적 데이터 독립성

- 외부 스키마나 응용 프로그램을 변경하지 않으면서 개념 스키마를 변경할 수 있는 능력(성질)

② 물리적 데이터 독립성

- 개념 스키마를 변경하지 않으면서 내부 스키마를 변경할 수 있는 능력(성질)


DBMS가 지원하는 언어


1. 데이터 정의어(DDL: Data Difinition Language)

- 개념 스키마와 내부 스키마를 정의

2. 데이터 조작어(DML: Data Manipulation Language)

- 데이터를 검색, 삽입, 삭제, 수정하기 위한 조작 언어

- 비 절차적인 언어, 사용이 편리한 언어를 사용

- DML 명령어는 범용 프로그래밍 언어에 삽입되어 사용될 수 있고, 이때 범용 프로그래밍 언어를 호스트 언어라 하고, 삽입된 DML 명령어를 데이터 부속어라 함.



인터페이스 유형


1. 메뉴 기반 인터페이스

2. 폼 기반 인터페이스

3. 그래픽 사용자 인터페이스

4. 자연어 인터페이스

5. 초보자를 위한 인터페이스

6. 데이터베이스 관리자를 위한 인터페이스



DBMS 유틸리티


- DBMS는 데이터베이스 관리자의 데이터베이스 시스템 운영을 도와줌



DBMS의 분류

1. DBMS 분류 기준

- 데이터 모델: 관계, 네트워크, 계층, 객체지향, 객체관계 등

- 사용자의 수: 단일 사용자, 다수 사용자 시스템

- 사이트의 수: 중앙집중식, 분산 DBMS(동질 분산 DBMS 또는 이질 분산 DBMS)

- DBMS의 비용

- 접근 경로의 유형

- 범용 또는 특수 목적용

2. 관계 모델

- 데이터베이스는 테이블들의 모임으로 구성

- 그림 1.2와 유사(Chapter 1)

- 고급 질의어를 제공하고 제한된 형태의 사용자 뷰를 지원

3. 네트워크 모델

- 데이터를 레코드 타입들로 나타냄

4. 계층 모델

- 데이터를 계층적 트리 구조로 나타냄

5. 객체지향 모델

- 객체, 객체의 속성, 연산으로 데이터베이스를 정의

- 같은 구조와 행위를 갖는 객체들은 한 클래스에 속하고 클래스들은 계층 또는 비순환 그래프로 조직됨

- 메서드라고 하는 미리 정의된 프로시저들이 클래스의 연산을 나타냄

6. 객체관계 모델

- 관계 모델에 객체지향 모델의 개념을 도입하여 확장함

'Database > Database System 정리' 카테고리의 다른 글

Chapter 3 정리  (0) 2014.04.21
Chapter 1 정리  (0) 2014.04.16

2014/04/11 - [Database System] - Chapter 1


용어 정의


1. 데이터베이스

- 서로 연관이 있는 데이터들의 모임.

- 작은 세계(mini-world) 또는 논의 세계(UoD)라고 부르는 실세계의 일부분을 표현한 것이다.

- 어떤 특정한 의미를 가지는 데이터의 모임.

- 특정한 목적을 위해서 설계, 구축, 운용을 한다.

- 데이터베이스에 저장되는 데이터에 대한 데이터 타입, 구조, 제약조건을 명세하는 과정.


2. 데이터

- 관찰, 수집, 측정 실험등으로 통해 얻어진 객관적 사실이나 값

- 알려진 사실로서 의미를 가지고 기록될 수 있다는 특성을 갖는다. (의미를 가지면서 기록될 수 있는 알려진 사실)


3. 메타 데이터

- 타겟이 되는 데이터의 내용을 확인할 수 우 있게 정보를 제공해주는 것.

- 데이터베이스에 대한 정보


4. 정보

- 데이터들의 어떠한 무의미한 값


5. DBMS

- 사용자가 데이터베이스를 생성하고 관리할 수 있도록 편리한 기능을 제공하는 프로그램들의 모임이다.

- DB의 생성과 관리를 담당하는 소프트웨어 패키지


6. 데이터베이스 시스템

- DB와 DBMS 및 이를 운영하기 위한 컴퓨터 시스템을 포함하여 DB를 생성, 운영 및 관리하기 위한 총체적 시스템을 Dababase System이라고 정의한다.

- DB와 그를 관리하는 소프트웨어(DBMS, 응용 프로그램) 모두를 칭하는 용어.



기존 화일 처리 시스템에 비하여 데이터베이스의 특징


1. 카탈로그

- 카탈로그에 저장된 정보를 메타 데이터라 부르며, 데이터베이스의 구조를 기술한다.


2. 프로그램-데이터 독립성

- 데이터 파일의 구조가 응용 프로그램과 분리되어 DBMS 카탈로그에 저장

- 데이터베이스 내의 데이터 저장 구조가 변경되어도 데이터베이스 응용 프로그램은 영향을 받지 않는 (변경될 필요가 없는) 성질 -> 데이터 독립성을 높인다.


3. 프로그램-연산의 독립성

- 연산의 구현이 변경되어도 인터페이스가 유지되는 한 응용 프로그램은 변경할 필요가 없다.

- 사용자 응용 프로그램에서는 연산의 구현 내용을 몰라도 연산의 이름과 매개 변수들을 사용해서 연산을 호출함으로써 데이터에 대한 연산을 수행할 수 있다.


4. 데이터 추상화

- 데이터 모델을 사용함으로써 저장 구조의 자세한 내용은 사용자로부터 은닉시키고 각자의 요구에 맞는 개념적인 뷰만 제공한다.


5. 다중 뷰의 지원

- 사용자는 전체 데이터베이스 보다는 관심이 있는 데이터베이스의 일부를 뷰로 정의할 수 있다.


6. 여러 트랜잭션 간의 데이터 공유

- 여러 사용자가 동일한 데이터베이스 공유 가능하도록 지원

- 동시에 사용하더라도 일관성을 보장하기 위한 동시성 제어 기능 제공



데이터베이스 사용자의 분류


1. 데이터베이스 관리자(Database administrator, DBA)

- 데이터베이스 시스템의 관리를 책임진 사람


2. 데이터베이스 설계자(Database Designer)

- 데이터베이스 설계를 책임진 사람


3. 최종 사용자

- 데이터베이스에 대하여 질의, 갱신, 보고서 작성 등을 담당하는 사람.

① 캐주얼 사용자(casual end user)

- 비정기적인 데이터베이스 사용자

- 정교한 질의어를 사용해 데이터를 요구하며, 대개 중상급의 관리자


② 초보 사용자(naive 또는 parametric end user)

- 미리 일정한 용도로 작성된 프로그램을 사용하는 사용자(은행 점원이나 여행사 예약 담당원 등)


③ 전문 사용자(sophisticated end user)

- 엔지니어, 과학자, 비즈니스 분석가 등으로, DBMS의 고급 기능을 이용하여 복잡한 응용을 개발(구현)


④ 독자적인 사용자(stand-alone end user)

- 메뉴나 그래픽 사용자 인터페이스를 제공하는 편리한 패키지를 사용하여 개인 데이터베이스를 유지하는 사용자(세금 계산을 목적으로 개인의 다양한 재정 데이터를 저장하는 세금 패키지의 사용자)


4. 시스템 분석가와 응용 프로그래머

- 초보 사용자를 위하여 잘 정의된 기능의 응용을 분석/설계하고 구현하는 사람


5. DBMS 설계자 및 개발자

- DBMS 소프트웨어 자체를 설계하고 구현하는 업무를 담당하는 사람들


6. 데이터베이스 도구의 개발자

- 데이터베이스를 사용하는 데에 필요한 도구들(데이터베이스 설계 및 구축 도구, 성능 도구, 인터페이스 등)을 설계하고 구현하는 사람들


7. 운영자와 유지보수 인력

- 데이터베이스 시스템을 운영하는 데에 필요한 하드웨어 및 소프트웨어 운영 및 유지 보수 담당 요원들



DBMS의 기능들


1. 중복성 제어 및 권한 검사

① 데이터 중복성의 제어 및 중복의 최소화한다.

- 데이터 일치성(consistency) 보장 및 메모리 낭비 방지

② 보안 기능

- 권한없는 사용자의 데이터 접근을 통제


2. 프로그램 객체와 데이터 구조에 대한 지속성 기억 공간 제공

- 데이터베이스에 영구적으로 보관/저장


3. 규칙을 사용한 추론과 수행

- 연역적 규칙을 이용하여 데이터베이스 저장된 사실로부터 새로운 정보를 추론

- 자동으로 수행되는 능동 규칙의 정의 및 실행


4. 다중 사용자 인터페이스 제공

- 캐주얼 사용자에게는 질의어를, 응용 프로그래머에게는 프로그래밍 언어 인터페이스를, 초보 사용자에게는 폼(form)이나 명령어 인터페이스를, 독자적인 사용자에게는 메뉴 기반 인터페이스나 자연언어 인터페이스를 제공해야 한다.


5. 데이터 사이의 복잡한 관련성 표현

- 하나의 애트리뷰트 값인 'Brown' 은 다른 릴레이션의 애트리뷰트값과 관련을 가진다.


6. 무결성 제약조건 처리, 백업과 회복 기능

① 무결성 제약조건의 시행

- 무결성 제약조건은 각 데이터 항목에 대한 데이터 타입이다.

- 참조 무결성 제약조건과 키 제약조건이 있다.

② 백업과 회복 제공

- 시스템 고장시에도 데이터의 일관성을 보장한다.



기존 파일 처리 시스템에 비하여 DB의 장점


1. 표준화 강화

- 조직 내 모든 부서에서 표준화된 문서 관리로 업무 효율성 증대


2. 응용 개발 시간의 단축

- 응용 프로그램의 상당한 부분을 DBMS가 처리한다.


3. 융통성 증가

- 데이터베이스 내의 자료 구조가 어떠한 이유로 변경되어도 사용자에 대한 영향은 거의 없다.


4. 최신 정보를 즉시 이용

- 사용자 중에서 한 사람의 갱신으로 나머지 사람은 즉시 변경된 값을 접근 가능하다.


5. 규모의 경제성

- 부서마다 다른 방식으로 자료를 관리하는 것보다 통합 DB로 관리하는 것이 전체적인 관점에서 저 비용이다.

'Database > Database System 정리' 카테고리의 다른 글

Chapter 3 정리  (0) 2014.04.21
Chapter 2 정리  (0) 2014.04.21

+ Recent posts