저번 면접을 보러 갔을 떄 RDBMS에 관한 이야기가 나왔었다. 뭐라 말하긴 했었지만 제대로된 답을
못 했었던것 같다. 두루뭉술한 답밖에 할 수는 없기에 제대로 찾아보기로 했다.
Relational Database Management System 즉, 관계형 데이터 베이스 관리 시스템은 데이터 베이스의 한 종류로 가장 많이 사용된다. 이는 데이터 베이스에 데이터를 열(Column)과 행(Row)의 테이블 형태로 저장하고, 테이블 형태의 스키마를 지켜야 한다. 가장 대표적인 RDBMS는 Oracle사의 Oracle, Microsoft사의 MS-SQL Server, Oracle사의 MySQL, IBM의 DB2 등이 있다. 관계형 데이터 베이스를 다루기 위한 언어를 SQL 이라고 한다.
장점
단점
Schema(스키마)
관계형 데이터 베이스(RDB)를 사용하여 데이터를 저장할 때, 데이터의 공통 속성을 식별하여 열(Col)으로 정의하고 테이블을 생성하는 것이 가장 먼저 해야하는 과정이다. 이 때, 하나의 테이블이 아닌 여러 테이블을 만들고 각 테이블의 구조, 형식, 관계를 정의하는데 이를 스키마라고 한다. 즉, 데이터 베이스의 설계도로 이해하면 된다. 데이터 베이스마다 스키마를 만드는 언어가 각기 존재하며, 해당 스키마만 있으면 동일한 구조의 데이터 베이스를 만들 수 있다. (데이터 백업은 아닌, 구조만 동일하다는 의미)

Structured Query Language (SQL)Permalink
SQL은 데이터 베이스 스키마 생성 및 수정, 테이블 관리, 데이터 추가, 수정, 삭제, 조회 등 데이터 베이스와 관련된 거의 모든 작업을 위해 사용되는 언어다. 데이터 베이스마다 문법의 차이는 존재하지만, 표준 SQL을 기본으로 하기 때문에 SQL은 필수적으로 익히도록 한다. SQL 언어는 크게 세 가지 언어로 나뉘며 다음과 같이 구분된다.
RDBMS에서 관리하기 위해 사용되는 표준 프로그래밍 언어
RDBMS 구성
관계형 데이터 베이스를 구성하는 데이터들은 다음의 요소로 이루어져 있다.
다음의 경우, 학생 relation은 학번, 이름, 학과, 학년의 attribute로 이루어져 있으며, 학생 relation에서 학년 attribute가 가질 수 있는 값 즉, domain의 값은 1, 2, 3, 4 이며 이외의 값은 가질 수 없다고 해석된다.

| 요소 | 설명 |
|---|---|
| Relation (테이블) | 같은 성격의 데이터의 집합으로 Relation Schema 와 Relation Instance 로 구성됨 |
| Relation Schema (스키마) | Relation의 이름과 각 Attribute의 이름의 집합, Relation을 넣기 위한 틀 |
| Relation Instance | 어느 시점의 Relation에 들어있는 Tuple의 집합, 저장된 데이터 전체를 의미 |
| Attribute (속성) | - Relation의 col (열) - Entity의 속성 |
| Entity Instance | 단수형의 데이터 |
| Entity, Tuple, Record | - Relation의 row (행) - Entity Instance의 복수형 |
| Domain | 하나의 Attribute가 가질 수 있는 값의 범위 |