데이터 베이스 요약
이 포스팅은 Database System Concepts(Abraham) 책을 참조하여 작성하였습니다.
DBMS
- DBMS 는 서로관계있는 데이터의 모음과 그러한 데이터에 접근하는 프로그램의 모음으로 구성되어 있습니다.
데이터는 하나의 특정한 enterprise 를 말합니다. - DBMS 의 목표는 편하고 효율적인 환경을 제공하는 것입니다.
- 디비 시스템은 큰 규모의 정보를 저장하도록 고안되었습니다.
데이터의 관리는 정보의 스토리지에 대한 구조의 정의와 정보 조작에 대한 매커니즘 조항 둘 다 포함합니다.
추가적으로 데이터베이스 시스템은 정보에 대한 안전성을 제공합니다. - 시스템 crash 나 접근 등,
만약 데이터가 여러 사용자들에게 공유되는 경우 익명적인 결과가 발생하는 것을 피해야 한다. - 데이터 베이스 시스템의 메인 목적은 사용자에게 데이터의 abstract view 를 제공하는 것 입니다.
시스템은 어떻게 데이터가 저장되고 유지되는지에 대한 세부사항은 숨깁니다. - 데이터 베이스 구조의 기초는 데이터 모델입니다.
데이터를 표현하기 위한 개념적인 툴들과 데이터 관계, 데이터 semantic, 그리고 data constrains d의 모음입니다. - 관계적 데이터 모델은 데이터를 저장하기 위해 가장 널리 사용되는 모델입니다.
다른 데이터 모델은 object-oriented, object-relational, semi-structure 모델이 있습니다. - 데이터 조작 언어(data-manipulation language,DML)은 사용자에게 데이터를 조작하도록 할 수 있게 하는 언어입니다.
비절자적, Nonprecedual DML 은 사용자에게 어떤 데이터가 필요한지만 명시하도록 요청합니다.
이러한 데이터를 구체적으로 어떻게 가져올지는 요청하지 않습니다.
오늘날 대부분 사용되는 DML 입니다. - DDL(data-definition language) 는 데이터 베이스 스키마와 데이터의 다른 속성을 명시하기 위해 사용되는 언어입니다.
- 데이터베이스 설계는 주로 데이터베이스 스키마의 설계를 포함합니다.
entity-relationship (E-R) 데이터 모델은 데이터 베이스 설계를 위해 주로 사용되는 모델입니다.
이것은 데이터와 관계, 제약들을 보기 위한 시각적인 표현을 제공합니다. - 데이터베이스 시스템은 여러 subsystem을 갖고 있습니다.
- Storage manger subsystem 은 데이터 베이스에 저장되어 있는 저레벨 데이터와 어플리케이션 프로그램 사이의 인터페이스를 제공하고, 시스템에 쿼리를 제출합니다.
- query processor subsytem 은 DDL과 DML statement 들을 컴파일하고 실행합니다.
- Transaction management 은 데이터베이스가 시스템 오류에서도 지속적인 상태로 유지하는 것을 보장합니다.
trasaction manager 는 충돌없이 동시에 transaction 실행하는 것을 보장합니다. - 데이터 베이스 시스템 아키텍처는 수행되는 컴퓨터 시스템에 큰 영향을 받습니다.
데이터 베이스 시스템은 다중 머신을 포함하여 centralized 되거나 병렬화될 수 있습니다.
분산 데이터베이스는 다중의 물리적 분리된 머신들까지 확장합니다. - 데이터베이스 응용 프로그램은 일반적으로 클라이언트 컴퓨터에서 실행되는 프런트 엔드 부분과 백엔드에서 실행되는 부분으로 나뉩니다.
2 티어 아키텍처에서, 프론트앤드는 직접적으로 벡엔드에서 실행중인 데이터 베이스와 통신합니다.
3 티어 아키텍처에서는, 벡엔드 부분은 application server 와 database server 로 나눠집니다. - 네 가지 유형의 데이터베이스 시스템 사용자가 있으며 시스템과 상호 작용할 것으로 예상되는 방식이 다릅니다. 다양한 유형의 사용자를 위해 다양한 유형의 사용자 인터페이스가 설계되었습니다.
- 데이터 분석 기술은 자동적으로 데이터로 부터 규칙과 패턴을 찾는 것을 시도합니다.
데이터 마이닝 분야는 인공 지능 연구자와 통계 분석가가 발명 한 knowledge discovery 기술과 이를 매우 큰 데이터베이스에서 사용할 수있는 효율적인 구현 기술을 결합합니다.
Relational Model
- 관계 데이터 모델은 테이블의 모음에 기반합니다.
디비 시스템의 사용자는 이러한 테이블에 대해 쿼리를하고, 튜플을 삽입하고, 지우고 수정합니다.
이러한 연산들을 표현하는 여러 언어들이 있습니다. - 관계의 스키마는 논리적 설계를 참조하는 반면 관계의 인스턴스는 특정 시점의 내용을 참조합니다.
데이터베이스의 스키마와 인스턴슨느 유사하게 정의 됩니다.
스키마는 그것의 attribute 와 부가적으로 attribute 의 타입, 관계의 제약(foreign-key 같은) 을 포함합니다. - 릴레이션의 슈퍼키는 하나 혹은 그 이상의 attribute 의 집합입니다. - 이것의 값들은 릴레이션에서 투플들을 유니크하게 표현하는것을(identify) 보장합니다.
후보키는 최소한의 슈퍼키 입니다. 이것은 attribute 의 집합이고, 이로 슈퍼키를 형성할 수 있지만, 이것의 부분집합 중 어느것도 슈퍼키가 될 수 없는 것 입니다.
한 릴레이션의 후보키들 중 하나는 반드시 primary key 로 선택되어야 합니다. - 릴레이션 $r_1$ 의 attribute A 부터 $r_2$ 의 primary-key B 로의 foreign-key 제약 은
$r_1$ 에 있는 각 튜플의 A 값이 반드시 $r_2$ 의 어떤 튜플 에 대한 B 값이 되어야 한다는 것입니다.
릴레이션 $r_1$ 은 referncing relation 이라고 하고
릴레이션 $r_2$ 는 referenced relation 이라 합니다. - 스키마 다이어그램은 데이터베이스의 관계, attrubiute , primary key, foreign key 를 보여주는 데이터베이스 스키마의 그림 묘사입니다.
- relational query language 는 테이블에서 작동하는 연산과 그것의 결과로써의 output 테이블의 집합으로 정의합니다.
이러한 작업을 결합하여 원하는 쿼리를 표현하는 식을 얻을 수 있습니다. - relational algebra 는 하나 이상의 relation 를 입력으로 사용하고 relation 을 출력으로 반환하는 연산의 집합을 제공합니다.
SQL과 같은 실용적인 쿼리 언어는 relational algebra 를 기반으로하고 몇가지 유용한 구문 기능을 많이 추가하였습니다. - relational algebra 는 테이블에서 작동하는 대수 연산의 집합을 정의하고 그 결과로 테이블을 출력합니다.
이러한 연산을 결합하여 원하는 쿼리를 표현하는 표현식을 얻을 수 있습니다.
대수는 SQL과 같은 relational query language 에서 사용되는 기본 연산을 정의합니다.
Comments