DBMS
DataBase
전자적으로 저장되고 사용되는 관련있는 데이터들의 조직화된 집합.
즉, 컴퓨터에 저장되어 사용되고 있는 데이터들을 관련있는 것끼리 조직화한 것
DBMS
DataBase Management System
- 사용자에게 DB를 정의하고 만들고 관리하는 기능을 제공하는 소프트웨어 시스템
- PostgreSQL, MySQL, Oracle Database, Microsoft SQL Server
- DB를 정의하다 보면 부가적인 데이터가 발생하는데, 이를 Meta Data라고 함
- database + DBMS + 연관된 applications
- DataBase라고도 함 (위 database와 다른 의미)
Data Models
DB의 구조를 기술하는데 사용될 수 있는 개념들이 모인 집합.
DB 구조를 추상화해서 표현할 수 있는 수단을 제공
Data Models의 분류
- conceptual data models
- high-level data models라고도 함
- 일반 사용자들이 쉽게 이해할 수 있는 개념들로 이루어진 모델
- 추상화 수준이 가장 높음
- 비즈니스 요구 사항을 추상화하여 기술할 때 사용
- logical data models
- representation data models라고도 함
- 이해하기 쉽지만 디테일하게 DB 구조화 할 수 있는 개념을 제공
- 데이터가 컴퓨터에 저장될 때의 구조와 크게 다르지 않게 DB 구조화
- physical data models
- low-level data models라고도 함
- 컴퓨터에 데이터가 어떻게 파일 형태로 저장되는지 기술할 수 있는 수단 제공
- data format, data orderings, access path 등
DataBase Schema
" data model을 바탕으로 database의 구조를 기술한 것
schema는 database를 설계할 때 정해져 자주 바뀌지 않음
DataBase State
" 특정 시점에 database에 있는 데이터.
= snapshot
= database에 있는 현재 instances의 집합
relational data model
주요 개념
- domain
: set of atomic values
- domain name
: domain 이름
- attribute
: domain이 relation에서 맡은 역할 이름
- tuple
: 각 attribute의 값으로 이루어진 리스트 (일부 값은 NULL일 수 있음)
- relation
: set of tuples
- relaion name
: relation의 이름
relaion schema
- relation의 구조를 나타냄
- relation 이름과 attributes 리스트로 표기
relation_name (attribute1, attribute2, ...)
- attributes와 관련된 constraints도 포함
degree of a relation
: relation schema에서 attributes의 수
relation (= relation state)
: 실제 데이터, 실제 튜플들의 집합
relation database
- relational data model에 기반하여 구조화된 database
- relational database는 여러 개의 relations로 구성

relation 특징
- relation은 중복된 tuple 가질 수 없음
- relation의 tuple을 식별하기 위해 attribute의 부분 집합을 key로 설정
- 하나의 relation에서 attribute의 이름이 중복되면 안 됨
- relation에서 tuple과 attribute의 순서는 중요하지 않음
- attribute는 atomic 해야 함 (더이상 쪼개지지 않는 단위로)
→ composite or multivalued attribute 허용 안 함