Database + DBMS + 연관된 applications
전자적으로 저장되고 사용되는 관련있는(related)데이터들의 조직화된 집합(organized collection)이다.
사용자에게 DB를 정의하고 만들고 관리하는 기능을 제공하는 소프트웨어 시스템을 의미한다.
종류 : PostgreSQL, MySQL, Oracle 등
DBMS를 이용하여 데이터를 정의하고 관리하다보면 부가적인 데이터가 발생하는데, 이를
metadata
라고 부르며 (data about data) DBMS로 인해 관리된다.
- database를 정의하거나 기술하는(descriptive)data
- catalog 라고도 부른다.
예시 : 데이터 유형, 구조, 제약조건, 보안, 저장,인덱스, 자용자 그룹 등등
DB의 구조(structure)를 기술하는데 사용될 수 있는 개념들이 모인 집합(DB구조를 추상화해서 표현할 수 있는 수단을 제공한다.)
- 일반 사용자들이 쉽게 이해할 수 있는 개념들로 이루어진 모델
- 추상화 수준이 가장 높음
- 비즈니스 요구 사항을 추상화하여 기술할 때 사용한다.
ex) entity-relationshop model(개체 관계형 모델)
E-R Diagram
이란 Entity-Relationshop Model을 표현하는 것으로 개체(entity)와 속성(attribute), 관계성(relationshop)을 표현하며 개념을 모델링한다.
개체 = 사각형
속성 = 타원형
관계 = 마름모
- 이해하기 어렵지 않으면서도 디테일하게 DB를 구조화 할 수 있는 개념들을 제공한다.
- 데이터가 컴퓨터에 저장될 때의 구조와 크게 다르지 않게 DB 구조화를 가능하게 함
- 특정 DBMS나 storage에 종속되지 않는 수준에서 DB를 구조화
할 수 있는 모델relational data model
일반적인 테이블을 의미한다. row와 column이 존재한다.
row는 각각의 데이터를 의미하고, column은 속성을 의미한다.
object data model
객체개념을 사용하여 데이터베이스를 모델링하는 것이다.object-relational data model
relational data model 과 object data model을 합친 것이다.
- 컴퓨터에 데이터가 어떻게 파일 형태로 저장되는지를 기술할 수 있는 수단을 제공한다.
- data format, data orderings, access path(데이터 검색을 빠르게 하기 위한 구조체 (ex : index)) 등
프로젝트가 상당히 진행된 도중에 데이터 모델의 변경이 불가피한 상황이 발생한다면 프로그램의 상당수를 수정해야 되는 일이 발생합니다. 이는 상당한 위험요소가 될 수 있기 때문에 데이터 설계를 하는 데이터 모델리의 과정을 철저히 거쳐 프로젝트 도중 데이터 모델을 변경하는 불상사를 방지하여야 한다.
데이터 모델은 구축할 시스템의 정보 요구 사항과 한계를 가장 명확하고 간결하게 표현할 수 있는 일종의 설계도이다.
정보 요구 사항을 파악하는 가장 좋은 방법은 수많은 페이지의 기능적인 요구 사항을 파악하는 것보다 간결하게 그려져 있는 데이터 모델을 리뷰하면서 파악하는 것이 훨씬 빠른 방법이다.
Database에 담겨 있는 데이터는 기업의 중요한 자산이기 때문에 품질이 높은 정확성 있는 데이터가 저장되어 있어야 한다.
데이터 품질의 문제가 야기되는 이유 중 하나가 데이터 구조인데, 중복 데이터의 미정의 데이터 구조의 비즈니스 정의의 불충분, 동일한 성격의 데이터를 통합하지 않고 분리함으로써 나타나는 데이터 불일치 등의 문제가 발생하지 않도록 주의하여야 한다.
Internal Level
이다.
1. external schemas(or user views) at external (or view) level
: 실제 사용자가 바라보는 뷰이다. 특정 유저들이 필요로 하는 데이터만 표현한다. 그 외 알려줄 필요가 없는 데이터는 숨긴다. (logical data model을 통해 표현한다.)
2. internal schemas at internal level
: 물리적으로 데이터가 어떻게 저장되는지 physical data model을 통해 표현된다. (data storage, data structure, access path 등 실체가 있는 내용 기술)
3. conceptual schemas at conceptual level
: 전체 database에 대한 구조를 기술하며 물리적인 저장 구조에 관한 내용은 숨긴다.
오늘날의 DBMS는 DML, VDL, DDL이 따로 존재하지 않고 통합된 언어로 존재한다.
SQL