디지털 너구리 : 게임, IT 정보 및 다양한 지식 공유드립니다.

안녕하세요 엘빈입니다. 데이터 베이스를 설계하고 구축하는데 기본적으로 알아야 할 개념들이 있습니다. 이번 포스팅에서는 데이터 베이스 가장 기초적인 개념들을 간단하게 정리해볼까 합니다.

 

 

 

 

 

 


 

포스팅은 강의 자료를 바탕으로 정리 및 요약식으로 작성되었습니다.

 

1. 스키마와 인스턴스

 

(1) 스키마(Schema)

스키마란 데이터베이스의 논리적인 구조를 뜻한다. 정보들관의 관계를 규정하거나 어떤 형식으로 정리할 것인지 등이 포함된다.

 

(2) 인스턴스(Instance)

데이터베이스의 실제 내용이다. 일련의 데이터의 집합이라고 생각하면 된다.

 

(3) 물리적 자료의 독립성 (Physical Data Independence)

물리적 자료의 독립성이란 아래 단계인 물리적 스키마를 바꿔도 위의 단계인 논리적 스키마에 영향이 않가는 것을 뜻한다. 응용 프로그램은 논리 스키마에 의존하며 일반적으로 다양한 레벨과 구성 요소간의 인터페이스는 일부분의 변경이 다른 부분에 심각한 영향을 미치지 않도록 잘 정의되어야 한다.

 

 

 

 

2. 데이터 모델 (Data Models)

 

: 데이터 모델을 구성할 때 데이터, 데이터 관계, 데이터의 의미, 데이터의 제약등을 고려한다. 대표적인 데이터 모델로는 다음과 같은 것들이 있다.

 

(1) 관계형 모델(Relational model)

 

 

(2) ER 모델(Entity-Relationship data model) - 대다수의 데이터 모델에 적용됨

ER모델은 개체(Entity)와 관계(Relation)로 기술하는 데이터 모델이다. 개체는 다른 것과 구별되는 사물 또는 어떠한 것을 말한다. 관계는 몇개의 개체간에 연관성을 뜻한다.

 


(3) 객체 기반 데이터 모델(Object-based data models)

 

추가된 데이터 유형들을 처리하기 위해 객체 지향 및 구성을 포함하여 관계형 데이터 모델을 확장시킨 것을 말한다. 튜플 속성이 중첩 관계와 비원자값을 포함하여 복잡한 유형을 갖도록 허용한다. 기존 관계형 언어와 호환성 또한 제공한다. 모델링 하는 동안 데이터에 대한 관계 기반을 유지한다(특히 선언적 접근)

 

(4) 반구조화 데이터 모델(semistructured data model) - XML

 

(5) 다른 모델 : 네트워크 모델(Network model) , 계층 모델(Hierarchical model)

 

 

 

3. 데이터 언어

 

(1) DML(Data Manipulation Language)

 

DML은 데이터 조작어로 불리며 데이터 모델에 접근하여 구성된 데이터에 접근하고 조작하기 위한 언어이다.

 

언어들에는 두가지 타입이 있으며 사용자가 필요한 데이터와 해당 데이터를 얻는 방법을 지정하는 절차적 언어와 해당 데이터를 얻는 방법을 지정하지 않고 필요한 데이터를 지정하는 비절차적 언어가 있다.

 

가장 널리 사용되는 쿼리 언어(query language)는 SQL(structured Query Language)이다

 

 

(2) DDL(Data Definition Language)

 

데이터베이스 스키마 정의를 위한 특별한 표기법이다.

 

DDL 컴파일러는 데이터 사전에 저장되 있는 테이블 table 세트를 생성한다. 데이터 사전에는 메타 데이터(meta data : 데이터에 관련된 데이터)가 포함되며 데이터 저장 및 정의 언어, 무결성 제약, 사용된 저장소의 구조 및 접근 방법을 지정한다.

 

 

* 무결성 제약

1. 도메인 제약 (Domain constraints)

2. 참조 무결성(SQL 참조 제한 조건) (Referential integrity)

3. 주장(Assertions)

 

 

 

 

4. SQL

 

SQL이란 가장 널리 사용되는 비절차적 언어(non-procedural language)로 응용 프로그램은 일반적으로 다음 중 하나를 통해 데이터베이스에 접근한다.

 

1. Embedded SQL을 허용하는 언어 확장

2. SQL 쿼리를 데이터베이스로 보낼 수있는 응용 프로그램 인터페이스 (예 : ODBC / JDBC)

 

 

 

 

5. 데이터 베이스 디자인

 

데이터 베이스의 일반적인 구조를 설계하는 과정이다.

 

(1) 논리적 설계(Logical Design) - 데이터 베이스 스키마를 결정하는 단계이다. 데이터 베이스 설계를 위해서는 좋은 관계의 스키마를 찾아야 한다. 스키마를 정할 때 참고해야할 사항은 다음과 같다.

# Business Decision - 데이터베이스에 어떤 속성을 기록해야 하는가?

# Computer Science Decision - 어떤 관계여야 하며 다양한 관계를 가진 스키마 간에 속성을 어떻게 분리할 것인가?

 

(2) 물리적 설계(Physical Design) - 데이터 베이스의 물리적 레이아웃을 결정

 

 

 

6. 스토리지 관리자(Storage Management)

 

스토리지 관리자는 데이터 베이스에 저장된 하위 레벨 데이터와 으용 프로그램 및 쿼리(query = 질의) 사이에 인터페이스를 제공하는 프로그램 모듈이다.

 

스토리지 관리자는 파일 관리자와의 상호작용 및 효율적인 데이터 저장, 검색, 업데이트를 담당한다.

 

 

 

 

7. 질의 처리(Query Processing)

# 고려해야할 사항

1. 파싱(Parsing = 내가 원하는 데이터를 특정 패턴이나 순서로 추출해 가공하는 것을 말한다) 및 번역(Translation)

2. 최적화(Optimization)

3. 평가(Evaluation)

 

(1) 주어진 쿼리를 평가하는 다른 방법에는 동등한 표현이나 각 작업마다 다른 알고리즘이 있다. 좋은 평가와 나쁜 평가 사이에 소모되는 비용(Cost)의 차이점은 크기 때문에 유의해야한다.

 

(2) 운용 비용 추정이 필요한 이유는 데이터 베이스가 유지해야하는 관계에 대한 통계 정보에 크게 의존한다. 복잡한 표현의 비용을 계산하기 위해 중간 결과에 대한 통계를 추정해야한다.

 

 

8. 트랜잭션 관리쟈(Transaction Management)

 

트랜잭션이란 데이터베이스 관리 시스템에서 단일 논리 기능을 수행하는 작업 단위다. 

 

 

(1) 트랜잭션 관리 구성 요소는 시스템 오류( 정전 및 운영체제 충돌) 및 트랜잭션 오류가 있어도 데이터 베이스는 일관된 상태를 유지해야 한다.

 

(2) 동시성 제어 관리자(Concurrency-control manager)는 데이터 베이스의 일관성을 보장하기 위해 트랜잭션 간의 상호 작용을 제어한다.

 

 

 

 

9. 데이터 베이스 이용

 

# 데이터 베이스 사용자(Database Users)

 

사용자는 시스템을 어떻게 이용할지 예상되는 방향에 따라 차별화 된다.

(1) 응용 프로그래머(Application programmers) - DML 호출을 통해 시스템을 이용

(2) 정교한 사용자(Sophisticated users) - 데이터 베이스 쿼리 언어 양식을 제출한다.

(3) 전문화 사용자(Specialized users) - 기존의 데이터 처리 프레임 워크에 맞지 않은 전문화 된 데이터 베이스 응용프로그램을 작성한다.

(4) 순수 사용자(Native users) - 일반 사용자로 작성된 응용 프로그램을 호출한다.

ex ) 은행원, 사무직원 - 데이터 베이스에 접근하여 정보를 알아낸다.

 

 

# 데이터 베이스 관리자

 

데이터 베이스 시스템의 모든 활동을 관리한다. 기업의 정보와 요구에 대해서 잘 이해하고 있다.

 

데이터 베이스 관리자의 임무는 다음과 같다

(1) 스키마 정의

(2) 스토리지 구조 및 접근 방법 정의

(3) 스키마 및 물리적 단계 수정

(4) 데이터 베이스에 엑세스 할 수 있는 사용자 권한 부여

(5) 무결성 제약 조건 지정

(6) 이용자와 상호교류

(7) 성능 모니터링 및 요구 사항 변화에 대응

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band