DB(DataBase) : 전자적으로 저장되고 사용되는 관련있는 데이터들의 조직화된 집합
관련있는 데이터 = 하나의 서비스와 관련된 일련의 정보들
조직화된 집합 = 조직화된 데이터는 데이터 접근성이 높고 불필요한 데이터의 중복 차단, 데이터의 불일치를 막을 수 있다.
전자적으로 저장 및 사용 = 데이터들을 조직화된 집합의 형태로 전자적으로 저장하고 사용한다.

DBMS(DataBase Management System) : 사용자에게 DB를 정의하고 만들고 관리하는 기능을 제공하는 시스템
*대표적 DBMS = PostgreSQL, MySQL, OracleDatabase, SQLServer 등..

DB system : 사용자에게 DB를 정의하고 만들고 관리하는 기능을 제공하는 소프트웨어 시스템 (DB를 정의하다보면 부가적인데이터가 생긴다.) DB + DBMS + 연관된 응용프로그램 이것을 데이터베이스라고 통틀어서 부르는 경우도 있기 때문에 문맥상 DB를 말하는지 DB system을 말하는지 구분할 필요가 있다.
*부가적인데이터 = 메타데이터(metadata)

메타데이터 : 데이터를 설명하기위한 데이터(data about data)라고 한다
이르자면, 사진이면 그 사진의 해상도나 크기 등 부가적인 정보들
데이터베이스의 메타데이터가 저장되는곳을 catalog라고도 부름.
*메타데이터의 예시 = 데이터 유형, 구조, 제약조건, 보안, 저장, 인덱스, 사용자 그룹 등..

메타데이터 또한 DBMS를 통해 저장 및 관리된다.

쿼리(Query) : 데이터베이스에 접근해서 원하는 데이터를 가져오거나 원하는 형태로 데이터를 수정하는 요청

데이터모델(DataModels) : DB구조를 기술하는데 사용될 수 있는 개념들이 모인 집합
원하는 추상화 수준으로 모델링 하기위해선 데이터 모델이 필요하다

-데이터모델의 분류-
1) Conceptual(high-level) data models
일반 사용자들이 쉽게 이해할 수 있는 개념들로 이루어진 모델, 추상화 수준 높음
entity-relationship model이 대표적임

2) Logical(representational) data models
이해하기 어렵지 않으면서 디테일하게 DB를 구조화 할 수 있는 개념들을 제공
DB구조화 하는 구조가 컴퓨터에 데이터가 저장될때와 유사하다.(동일하진 않음)
object data model이 대표적이다.

3) Physical(low-level) data models
컴퓨터에 데이터가 어떻게 파일 형태로 저장되는지 기술할 수 있는 수단을 제공
data format, data orderings, access path
데이터가 실제로 저장장치에 저장되는 형태에 가장 근접하게 표현함. 그만큼 밀접한 모델링 가능

DB Schema : data model을 바탕으로 database의 구조를 기술한 것.
schema는 DB를 설계할 때 정해지고 한 번 정해진 후에는 자주 바뀌지 않는다.

DB state : DB의 데이터는 변동성이 높은데 특정 시점에 DB에 있는 데이터를 DB state 혹은 snapshot이라고 하거나, 현재 instances의 집합이라고도 한다.

three-schema architechture : DB system을 구축하는 architechture 중의 하나
user application으로부터 물리적인 DB를 분리시키는 목적
각각의 레벨마다 schema가 정의되어있다

external schemas는 external level에서 정의되어있고
특정 유저들이 필요로 하는 데이터만 표현, 그 외 필요없는 데이터는 숨김

conceptual schemas는 conceptual level에서 정의되어있고
전체 database 에 대한 구조를 기술, 물리적인 저장 구조에 관한 내용은 숨김

internal schemas는 internal level에서 정의되어있다
물리적으로 데이터가 어떻게 저장되는지 physical data model을 통해 표현

물리적인 저장장치에 가장 가깝게 있는게 internal schema이다

data definition language(DDL) :
conceptual schema를 정의하기 위해 사용되는 언어
때때로 internal schema까지 정의하기도 함

storage definition language(SDL) :
internal schema를 정의하기 위해 사용되는 언어
요즘, 특히 relational DBMS에서는 SDL이 거의 없고 파라미터 등의 설정으로 대체됨

view definition language (VDL) :
external schema를 정의하기 위해 사용되는 언어
대부분의 DBMS에서는 DDL이 VDL역할까지 수행

data mainpulation language(DML) :
database에 있는 data를 활용하기 위한 언어
data추가, 삭제, 수정, 검색 등등의 기능을 제공하는 언어

profile
문제 해결을 위해 끊임없이 파고드는 걸 좋아합니다.

0개의 댓글