관계형 모델(Relational Model)
데이터 모델이란 데이터를 저장하는 방식을 정의한 개념 모형이다.
종류로는 계층형, 관계형, 객체 지향형 등이 있는데 이번에 볼 것은 이 중 관계형 모델이다.
관계형 데이터 모델은 1970년 E.F.Codd가 제안한 모델로서 수 십년동안 주류 데이터베이스 모델로 성장해 왔다.
이 관계형 데이터 모델(관계형 데이터베이스) 즉, RDB(Relational DataBase)는 데이터 간의 관계에 초점을 두고 있으며 키와 값들의 간단한 관계를 테이블화 시킨 매우 간단한 원칙의 개념의 데이터베이스이다.
일련의 정형화된 테이블로 구성된 데이터 항목들의 집합이며 각 테이블은 데이터의 성격에 따라 여러 개의 컬럼(키)이 포함된다. (관계형 데이터베이스를 관리하는 DBMS는 RDBMS라고 불리우며 Oracle, MySQL, PostgreSQL 등이 있다.)
사용자는 SQL(Structured Query Language)이라는 표준 질의어를 통해 데이터를 조작 또는 조회 할 수 있다.
SQL은 데이터베이스 스키마 생성, 자료의 검색, 수정, 그리고 데이터베이스 객체 접근 관리 등을 위해 고안된
언어로 다수의 데이터베이스 관련 프로그램의 표준언어로 사용된다.
SQL 명령어는 아래 종류와 같이 나뉜다.
* SQL 명령어의 종류
- DML ( Data Manipulation Language): 데이터 조작어로 검색 및 수정하기 위한 수단제공
SELECT, INSERT, UPDATE, DELETE, MERGE
- DDL ( Data Definition Language ): 데이터 구조를 생성, 변경, 삭제 등의 기능을 제공
CREATE, ALTER, DROP, RENAME
- DCL ( Data Control Language ): 데이터에 대한 권한 관리 및 트랜잭션 제어
GRANT, REVOKE
|
SQL문의 결과는 항상 relations(테이블)의 형태로 도출되는데(Closed, Compositional), 이같은 특성 덕에 우리는 SQL문의 결과에 또 다른 쿼리를 적용할 수 있으며, SQL문의 중첩(테이블간의 join)도 가능하게 해준다.
관계형 모델(관계형 데이터베이스)과 SQL에 대해 대략적으로 살펴보았으니, 이번에는 이 관계형 데이터베이스를 구성하는 요소에 대해서 살펴보고, 이 관계형 데이터베이스를 어떻게 생성하고 사용하는지 프로세스에 대해서 알아보자.
* 관계형 데이터베이스의 구성요소

- 테이블(Table): RDBMS의 기본적 저장 구조(2차원 표 형태), 한 개 이상의 Column과 0개 이상의 row로 구성된다.
- 열(Column): 테이블상에서 저장하려는 데이터를 대표하는 이름과 공통 특성(타입, 크기)을 정의한다.
Attribute라고도 한다.
- 행(Row): Column들의 값의 조합으로 테이블을 구성하고 있는 각각의 개체(instance)를 의미한다.
Tuple이라고도 한다.
- 키(KEY): 하나의 Table을 구성하는 여러 열 중에서 특별한 의미를 지닌 하나 또는 여러개의 열의 조합을 의미한다.
>> Primary Key(여러 키 중에서 가장 중요한 키로서 하나의 테이블 내에서 중복되지 않는 값만 가질 수 있는
키, 하나의 테이블에서 데이터를 구별하는데 사용)
>> Foreign Key(특정 테이블에 포함되어 있으면서, 다른 테이블의 primary key로 지정되어 있는 키, 다른
테이블을 참조할 때 사용)
등이 존재한다.
- 필드(Field): Row와 Column의 교차점, 데이터를 포함할 수 있고, 없을 경우 Null 값을 가지고 있다.
Null값도 unkown, undefined로 나뉠 수 있는데, undefined는 외국인의 한국 주민등록 번호,
5급 면제자의 복무 기록, 2000년 생의 6.25 참전기록 등 존재하지 않음이 확실한 attribute 값을,
unkown은 차량 번호, 집 전화 번호 등 존재할 수 있으나 누락되거나 알고 있지 못하는 attribute 값을
의미한다.
하나의 Row(tuple)는 실제적인 데이터 즉, instance라고, Table(relation), Column(attribute), Range, Constraint(제약조건) 들은 데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한 Schema라고 한다.
마지막으로 관계형 데이터 베이스의 생성과, 사용 프로세스는 어떤 과정으로 이루어져 있을까? 아래 그림을 참고하자.

위 그림과 같이 DDL, DML 등의 query 문을 이용해 데이터 베이스를 생성, 데이터의 사용/조작 등의 프로세스가 이루어진다.