티스토리 뷰

책/데이터베이스 시스템?

1. Introduction2

안양사람 2020. 9. 26. 23:43
728x90
SMALL

관계형 데이터 베이스

관계형 데이터베이스는 관계형 모델에 기반하여 데이터와 데이터들의 관계를 나타내기 위해 테이블들의 집합을 사용. 관계형 데이터베이스는 DML과 DDL을 포함. 대부분의 상업적인 관계형 데이터베이스 시스템은 SQL언어사용

 

테이블

각 테이블은 고유한 이름을 가진 여러개의 열로 구성. 관계형 모델은 레코드-기반 모델의 한 예이다. 레코드-기반 모델이라 명명한 것은 데이터베이스가 몇 개의 형으로 이루어진 고정 형식의 레코드로 구성되기 때문. 각 테이블은 특정한 형의 레코드들을 포함. 각 레코드형은 정해진 수의 필드(또는 속성)를 정의. 테이블의 각 열은 레코드형의 속성에 대응

 

데이터 조작 언어

SQL 질의 언어는 비절차적 언어이다. 입력으로 몇 개의 테이블(1개 가능)을 받아 항상 한 개의 테이블을 반환.

 

데이터 정의 언어

SQL은 테이블, 무결정 제약조건, 주장 등을 정의할 때 많은 DDL을 제공한다. 각 열은 특정한 데이터형을 갖는다. 추가적으로 메타데이터를 가지는 데이터 사전을 갱신한다. 테이블의 스키마는 메타데이터의 예이다.

 

응용 프로그램에서의 데이터베이스 접근

SQL은 범용 튜링 머신만큼 강력하지 않다. 즉 SQL로는 불가능하지만, 프로그래밍 언어를 사용하면 가능한 몇몇의 계산이 존재한다.

데이터베이스에 엑세스하기 위해, 호스트 언어에 있는 DML 문이 실행하기 위한 두가지 방법

1. DML과 DDL문을 데이터베이스에 보내기 위한 응용프로그램 인터페이스 제공.(JAVA는 JDBC, C는 ODBC)

2. 호스트 프로그램 안에 DML을 내장하기 위한 호스트 언어 문법의 확장. 보통은 특별히 정한 문자가 DML 호출의 시작을 알리고, DML 선컴파일러라 부르는 처리기가 DML 문을 호스트 언어의 프로시저 호출로 바꾸어 준다.

데이터베이스 설계

설계 단계

 상위 데이터 모델은 데이터베이스 설계자에게 데이터베이스 사용자의 데이터 요구조건들을 기술하기 위한 개념적인 골격과 데이터베이스가 이러한 요구조건을 만족시키기 위해 어떻게 구성될 것인가에 대한 것을 제공한다. 데이터베이스 설계자는 그 분야의 전문가들 및 사용자들과 광범위하게 상호 작용해야 한다. 이 단계의 결과물은 사용자의 요구 명세서이다.

 다음으로 설계자는 데이터 모델을 선택하고, 선택한 데이터 모델의 개념을 적용함으로써 이러한 요구들을 데이터베이스의 개념적인 스키마로 바꾼다. 이러한 개념적 설계의 단계에서 개발된 스키마는 기업의 상세한 개관을 제공한다. 이 때 설계자의 초점은 물리적으로 어떻게 저장할 것인지 자세히 규정하는 것 보다는 데이터와 그들의 관계를 기술하는 데 맞추어져 있다.

 관계형 모델에서의 개념적 설계 단계는 데이터베이스에서 우리가 포착하길 원하는 어떤 속성과 다양한 테이블을 구성하는 이런한 속성을 어떻게 그룹화할 것인가에 대한 결정과 관련되어 진다. 어떤 것은 기본적으로 기업적인 결정이고 어떻게는 주로 전산학의 문제이다.

이러한 문제를 다루는 2가지 방법

1. 개체-관계 모델을 사용

2. 모든 속성들의 집합을 입력으로 받아 테이블의 집합을 생성하는 알고리즘(정규화)을 사용하는 것

 또 완전히 개발된 개념적 스키마는 실세계의 기능적인 요구사항들을 보여준다. 기능적 요구 사항 명세서에 사용자들은 데이터에 적용될 연산(혹은 트랜잭션)들의 종류를 기술한다.(변경, 갱신, 검색, 삭제 등) 개념적 설계의 이 단계에서 설계자는 스키마가 기능적인 요구사항들을 만족시키는지 확인하기 위해 재검토할 수 있다.

 추상 데이터 모델로부터 데이터베이스 구현으로 이동하는 과정은 마지막 두 가지 디자인 단계에서 이루어진다. 논리 설계 단계에서 설계자는 상위의 개념적 스키마를 데이터베이스의 구현 데이터 모델에 대응시킨다. 설계자는 결과로 나온 시스템 특유의 데이터베이스 스키마를 데이터베이스의 물리적 속성들이 구체화되는 다음 단계인 물리 설계 단계에 이용한다. 이러한 속성들은 파일 구성의 형식과 내부적인 저장 구조들을 포함한다.

 

개체-관계 모델

 개체-관계 모델(E-R 모델)은 기본적인 개체를 나타내는 개체들과 개체들 간의 관계를 이용. 개체는 실세계에 존재하는 '어떤 것' 혹은 '객체'이며 다른 객체들과 구별된다. 예를들어 각 사람, 은행 계좌는 개체

 개체는 데이터베이스에서 속성의 집합으로 기술. ex) dept_name, building, budget 속성은 대학교의 특정 학과에 대한 정보. 그들은 department 개체집합의 속성의 형태를 띤다. 

 관계란 여러 개체들 간의 연관성을 말한다. 같은 형의 개체들의 집합과 같은 형의 모든 관계들의 집합을 각각 개체 집합(entity set)과 관계 집합(relationship set)이라 부른다.

 데이터베이스의 전체 논리적 구조(스키마)는 개체-관계 다이어그램으로서 시각적으로 도식할 수 있다. 가장 많이 쓰이는 방법은 통일된 모델링 언어(UML)를 이용하는 것이다. UML을 기반으로 한 E-R 다이어그램은 다음과 같이 나타낸다.

1. 개체 집합은 윗부분에 개체 집합의 이름을 갖고 그 아래에 속성들의 목록을 갖는 사각형 박스로 표현

2. 관계 집합은 연관된 개체 집합들의 쌍을 연결한 마름모로 표현된다. 관계의 이름은 마름모안에 위치한다.

 개체와 관계를 비롯하여, E-R 모델은 데이터베이스가 의미적으로 반드시 만족해야만 하는 제약조건들을  표현한다. 중요한 제약조건 중 하나가 바로 대응수(mmapping cardinality)이다. 이것은 어떤 개체가 하나의 관계 집합을 매개로 관련될 수 있는 개체의 수를 가리킨다. 

정규화

정규화의 목표는 불필요하게 중복 저장되는 정보가 없고, 정보 검색을 쉽게 할 수 있는 릴레이션 스키마 집합을 생성하는 것이다. 정규화의 방법은 적당한 정규형에 맞게 스키마를 설계하는 것이다어떤 릴레이션 스키마가 올바른 정규형들에 속하는지를 결저어하기 위해서는 데이터베이스로 표현하려고 하는 실세계 응용에 대한 부가적인 정보가 더 필요하다. 가장 많이 사용되는 방법은 함수 종속을 사용하는 것이다.

 잘못된 설계로 인해 생기는 문제점에는 1. 정보의 중복, 2. 특정 정보의 표현이 불가능 이 있다.

 

데이터 저장과 질의

데이터베이스 시스템은 기능적인 관점에서 봤을 때, 크게 두 부분으로 나누어진다. 저장장치 관리자, 질의 처리기

 데이터베이스는 본질적으로 대량의 기억 공간을 필요로 하므로 저장장치 관리자의 역할은 매우 중요하다. 컴퓨터의 메인 메모리는 큰 용량의 정보를 저장할 수 없기 때문에 정보는 디스크에 저장. 데이터는 필요할 때마다 디스크 저장 장치와 메인 메모리 사이에서 이동. 이 작업은 중앙 처리 장치의 속도에 비해 상대적으로 매우 늦기 때문에, 데이터베이스 시스템은 디스크와 메인 메모리 사이의 데이터 이동이 최소화되도록 데이터를 구조화한다.

 데이터베이스가 데이터에 접근하는 과정을 단순화하고 효율적으로 만드는 역할을 하는 질의 처리기 또한 중요. 질의 처리기는 데이터베이스 사용자들이 뷰 단계에서 일을 하는 동안 시스템의 물리적 단계에서의 자세한 구현내용을 이해하지 않아도 되며, 좋은 성능을 얻을 수 있도록 한다. 논리적 단계에서 비절차적 언어로 작성된 갱신 요구와 질의를 물리적 단계의 효율적인 일련의 연산으로 변환하는 것은 데이터베이스의 책임이다.

저장장치 관리자

저장 장치 관리자(storage manager)는 데이터베이스에 저장된 하위 단계의 데이터와 시스템의 응용 프로그램 및 질의 사이의 인터페이스를 제공하는 데이터베이스 시스템의 요소이다. 저장 장치 관리자는 파일 관리자와 상호 작용하는 책무가 있다. 원시 데이터는 운영체제상의 파일 시스템을 사용하여 디스크에 저장한다. 저장 장치 관리자는 다양한 DML 문을 하위 단계의 파일 시스템 명령으로 변환한다. 그러므로 저장 장치 관리자는 데이터베이스 내의 데이터를 저장하고 검색하며, 갱신하는 책임이 있다.

 

저장 장치 관리자의 구성 요소

1. 권한과 무결성에 관한 관리자 : 무결성 제약조건을 만족하는지 검사하고, 데이터에 액세스하는 사용자의 권한을 확인

2. 트랜잭션 관리자 : 시스템이 고장이 나도, 데이터베이스가 일관성 있는 정확한 상태를 유지하도록 보장. 동시에 실행되는 트랜잭션들이 충돌 없이 잘 이루어지도록 보장

3. 파일 관리자 : 디스크 공간의 할당과 디스크 상에 저장된 정보 포현을 위해 자료 구조를 관리.

4. 버퍼 관리자 : 디스크로부터 메인 메모리로 데이터를 인출하는 과정, 메인 메모리에서 캐시로 보낼 데이터를 결정하는 것에 대한 책임이 있다. 버퍼 관리자의 역할 매우 중요. 이는 메인 메모리보다 훨씬 큰 데이터베이스 내의 데이터를 메인 메모리에서 처리가능하게 하는 역할을 버퍼관리자가 하기 때문

 

물리적 시스템 구현의 일부로서, 저장 장치 관리자는 몇몇 데이터 구조를 구현한다.

1. 데이터 파일 : 데이터베이스 자체를 저장

2. 데이터 사전 : 데이터베이스의 구조에 관한 메타 데이터를 저장. 특힣 데이터베이스의 스키마를 여기에 저장

3. 색인 : 특정한 값을 가지고 있는 데이터 항목에 빠르게 액세스하기 위한 것. 데이터베이스 인덱스는 특정한 값을 가지는 데이터 항목을 지정하는 포인터를 제공. 해싱은 모든 경우는 아니지만 대부분의 경우 좀 더 빠른 색인 방법이다.

 

질의 처리기

질의 처리기의 구성 요소

1. DDL 인터프리터(DDL interpreter) : DDL 문을 해독하여 데이터 사전 내에 기록한다.

2. DML 컴파일러(DML compiler) : 질의어 내의 DML 문을 질의 평가 엔진이 이해할 수 있는 하위 단계 명령어로 구성된 질의 수행 계획으로 바꾼다. 질의는 보통 여러 방안의 질의 수행 계획으로 변환될 수 있으며, 각 질의 수행 계획은 같은 결과를 반복하낟. DML 컴파일러는 또한 질의 최적화(query optimization)를 수행한다.

3. 질의 평가 엔진(query evaluation engine) : DML 컴파일러가 생성한 하위 단계 명령을 실행한다.

트랜잭션 관리

 

데이터베이스 구조

 

데이터마이닝과 정보 검색

 

전문적 데이터베이스

 

데이터베이스 사용자와 관리자

 

데이터베이스 시스템의 역사

 

728x90
LIST

' > 데이터베이스 시스템?' 카테고리의 다른 글

1. Introduction1  (0) 2020.09.26
댓글
공지사항