데이터베이스란
여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 데이터들의 모임
⇒ 데이터를 모아둔 창고같은 개념
데이터베이스 정의
스키마
데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한 것
⇒ DB 내에 어떤 구조로 데이터가 저장되는지를 나타내는 데이터베이스 구조
- 스키마가 정의하는 것
- 속성(Attribute) : 개체의 특성을 나타냄
- 개체(Entity) : 속성들의 집합
- 관계(Relation) : 개체 간 존재하는 관계
- 제약조건
ex)
| 고객번호 INT | 이름 CHAR(10) | 나이 INT | 주소 CHAR(20) |
| --- | --- | --- | --- |
- 특징
- 데이터 사전(Data Dictionary)에 저장
- 데이터 사전 : 시스템 전체에서 나타내는 데이터 항목들에 대한 정볼르 지정한 중앙 저장소
- 현실 세계의 특정한 한 부분의 표현으로서 특정 데이터 모델을 이용해서 만들어짐
- 자주 변경되지 않음(시불변성)
- 데이터의 구조적 특성을 의미
- 인스턴스에 의해 규정
- 구분 : 사용자의 관점에 따라

- 개념 스키마 = 전체적인 뷰
- 데이터베이스의 전체적인 논리적 구조
- 조직체 전체를 관정하는 입장에서 DB 정의
- 데이터베이스에 실제로 어떤 데이터가 저장되었으며 데이터 간의 관계는 어떤가
- 조직의 모든 응용시스템에서 필요로 하는 개체 관계, 제약조건 등을 포함
- DB를 효율적으로 관리하는 데 필요한 접근권한, 보안정책, 무결성 규칙 등에 관한 사항도 포함
- 일반적으로 스키마라고 하면 개념 스키마를 의미
- 내부 스키마 = 저장 스키마
- 데이터베이스의 물리적 저장구조를 의미
- 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마
- 개념 스키마를 디스크 기억장치에 물리적으로 구현하기 위한 방법을 기술한 것
- 실제로 저장될 내부레코드 형식, 내부레코드의 물리적 순서, 인덱스 유무 등
- 실무적으로 내부스키마에 의해 DB의 실행 속도가 영향을 받기 때문에 DB의 구축 목적에 따라 내부 스키마를 결정해야 함
- 외부 스키마 = 사용자뷰
- 실세계에 존재하는 데이터들을 어떤 형식, 구조, 배치 화면을 통해 사용자에게 보여줄 것인가
- 사용자나 응용 프로그래머가 개인의 입장에서 필요한 DB의 논리적 구조를 정의
- 일반 사용자는 질의어를 이용해서 DB를 쉽게 사용
인스턴스
- 스키마에 따라 데이터베이스에 실제로 저장된 값, 테이블의 각 행을 의미
- 시간에 따라 자주 변경
- 인스턴스의 집합 = 데이터베이스 상태(state)
데이터 언어
데이터 정의어 DDL
- Data Definition Language
- 스키마를 정의하거나 변경, 삭제하기 위해 사용
데이터 조작어 DML
- Data Manipulation Language
- 실제 데이터의 삽입, 삭제, 수정, 검색 등의 처리를 요구하기 위해 사용
데이터 제어어 DCL
- Data Control Language
- 내부적으로 필요한 규칙이나 기법을 정의하기 위해 사용
- 데이터의 모결성, 보안, 회복 등을 위해 사용
- DCL을 이용해 정한 규칙과 기법에 따라 DBMS가 DB를 제어하고 보호
데이터베이스 관리 시스템 DBMS
- DataBase Management System
- 응용 프로그램을 대신하여 데이터베이스에 존재하는 데이터를 저장하고 관리
- 모든 응용 프로그램이 데이터베이스를 공유할 수 있게 함
기능
- 적합한 DB 구조를 정의
- 이미 정의된 구조를 수정
- 데이터의 삽입, 삭제, 수정, 검색연산
- 데이터를 항상 정확하고 안전하게 유지