DB 기초
데이타베이스 시스템(DBS: DataBase System)
: 데이터를 데이터베이스로 저장하고 관리해서 필요한 정보를 생성하는 컴퓨터 중심의 시스템.
구성하는 요소로는
: 데이타베이스, 데이타베이스 관리 시스템(DBMS: DataBase Management System), 시스템과의 인터페이스를 제공하는 도구로써의 데이타 언어, 데이타베이스 사용자, 관리자, 컴퓨터
DBMS 와 DBS를 혼동하지말자.
스키마
: 데이타베이스 구조와 제약조건(constraints)에 대한 명세(specification)를 기술한 것.
하나의 데이타베이스를 세 단계로 나누어 기술하는 것을 3단계 데이타베이스 구조(3-level database architechure)라 하고 각 단계에서의 스키마를 외부 스키마(external schema), 개념 스키마(conceptual scheema), 내부 스키마(internal schema)라 한다. 이 3단계 구조는 원래 미국 컴퓨터 및 정보 처리에 관한 표준화 위원횡인 ANSI/SPARC에서 제안한 것이기 때문에 ANSI/SPARC 구조라도고 한다.
외부 스키마
: 개별적 사용자 단계.
데이타베이스의 개개 사용자나 응용 프로그래머가 접근하는 데이타베이스를 정의.
서브 스키마 라고도 함.
하나의 데이타베이스에 여러개의 외부 스키마가 존재.
개념 스키마
: 범기관적 입장에서 데이타베이스르 정의.
개념적이란 의미는 추상적인 것이 아니라 전체적이고 종합적이라는 뜻.
하나의 데이타베이스에 한개의 개념 스키마만 존재.
개념 스키마를 단순히 스키마 라도고 한다.
내부 스키마
: 저장 장치의 입장에서 데이타베이스 전체가 저장되는 방법을 명세한 것.
하나의 내부 스키마가 있다.
3단계 데이타베이스 스키마의 의미
: 어느 한 응용 프로그램이 DBMS를 통하여 데이타베이스를 접근하려 할 때 DBMS는 이 3단계 스키마에 있는 모든 개체와 속성간의 대응 관계를 알아야만 지원할 수 있다.
대응 관계에 대한 정의를 사상(Mapping)이라고 하는데 DBMS는 바로 이 사상 정보를 정확하게 유지하고 관리하고 있는 것이다.
데이타베이스 관리 시스템(DBMS)
: 사용자와 데이타베이스 사이에 위치하여 데이타베이스를 관리하고 사용자가 요구하는 연산을 수행해서 정보를 생성해 주는 소프트웨어.
데이타 언어
: 데이타베이스를 정의하고 접근하기 위해서는 데이타베이스 관리 시스템과의 통신 수단이 필요한데 이것이 데이타 언어이다. 데이타언어는 사용 목적에 따라 데이타 정의어, 조작어, 제어어로 나뉜다.
데이타 정의어(DDL : Data Definition Language)
: 정의하거나 그 정의를 수정할 목적으로 사용. 데이타베이스 스키마를 데이타베이스 관리 시스템이 이해할 수 있게끔 기술하는 데 사용된다.
데이타 조작어(DML : Data Manipulation Language)
: 사용자가 DBMS로 하여금 원하는 데이타를 처리하게끔 명세하는 도구로서 사용자(응용 프로그램)와 DBMS간의 인터페이스를 제공한다.
데이타 제어어(DCL : Data Control Language)
: 데이타 제어에 관해 정의하고 기술하는 언어.
불법적인 사용자로부터 데이타를 보호하기 위한 데이타 보안, 무결성, 데이타회복, 병행 수행 제어를 명세할 수 있는 명령어들을 포함한다.
데이타 언어가 정의어, 조작어, 제어어로 구별되지만 현실적으로는 이들이 별도의 언어로 존재하지 않고 하나의 통합된 어어 속에서 기능적으로만 구분되는 것이 보통이다. 따라서 데이타 언어의 각 명령어를 사용할 때는 그 목적과 기능에 따라 선별하여 사용하여야 한다.
데이타베이스 키
기본 키
: 한 릴레이션에 있는 모든 투플들은 유일, 즉 서로 다르다.
유일성, 최소성
NULL값을 가질 수 없다.
즉, 릴레이션 이름과 기본 키만 주어지면 언제 어느 때고 이 기본 키를 통해서 해당 투플을 찾아낼 수 있다는 것을 보장하기 때문에 기본 키는 관계 데이타베이스의 기본 접근 방법이 된다.
외래 키
: 참조 키 PAGE.88
무결성 제약
: 키로부터 유래되는 개체 무결성 제약과 참조 무결성 제약이 있다.
NULL
: 디비에서 널은 아직 알려지지 않은(모르는) 값이나, 값이 있지만 아직 모름, 해당 없음 등의 이유로 정보 부재를 명시적으로 표시하기 위해 사용하는 특수한 데이타 값이다.
공백이나 0과 다르다.
무결성 제약에서 널은 통상적인 정보의 부재만을 의미하기 때문에 보통 공백으로 표현된 것도 널로 해석한다.
개체 무결성 제약
: 기본 키에 속해 있는 어트리뷰트는 언제 어느 때고 널 값을 가질 수 없다는 것을 말한다.
기본 키 값의 전부 또는 일부가 널(정보부재)이 된다면 결과적으로 투플을 유일하게 식별할 수 없게 되어 기본 키 정의에 위반된다.
참조 무결성 제약
: 참조하고 있는 값이 실제 존재해야 된다.
외래 키 값이 널이면 참조할 투플이 결정되지 않은 것으로 해석되 문제가 없지만 존재하지 않는 값을 참조한다면 문제가 발생한다.