본문 바로가기

Computer Science/데이터베이스(DB)

[DB] 1. Relational Model (관계형 모델)

반응형

[목차]

 

1. Database Management System

 

2. Relational Model이란? 

 

3. Relation

 

4. Relational Model의 특징

 

 

 

  1. Database Management System

 

데이터베이스 관리 시스템(Database Management System, DBMS)다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합이다. 

범용 DBMS는 데이터베이스의 정의, 생성, 질의, 업데이트, 관리 등을 위해 고안되었다. 

초기의 DBMS에서는 데이터베이스가 가진 독립체와 속성인 '논리 계층(Logical layer)'과 이들이 저장되는 방식인 '물리 계층(Physical layer)'이 매우 밀접한 관계였기 때문에, 물리 계층을 바꿀 때마다 모든 코드를 바꿔야 해서 데이터베이스 응용프로그램을 짓고 유지하기가 어려웠다. 

 

이러한 단점을 보완하기 위해 1970년도에 Ted Codd라는 사람이 관계형 모델(Relational model)을 고안하였다. 

 

 

  2. Relational Model

 

먼저, 관계형 모델(Relational Model)은 여러 데이터 모델(Data Model) 중 하나로, 데이터 모델은 데이터베이스에 있는 데이터를 표현하는 개념의 집합이다. 

 

관계형 모델(Relational Model)은 다음 세 핵심 포인트와 함께 고안되었다. 

 

1. 데이터베이스를 단순한 자료구조에 저장

2. high-level language로 데이터에 접근

3. 물리적 저장소는 구현에 맡겨짐

 

관계형 모델에서는 릴레이션(Relation)이라는 구조가 사용되는데, 쉽게 말하면 2차원 테이블의 형태이다. 이 릴레이션의 관계를 정의한 것이 관계형 모델이라고 할 수 있다.

 

 

  3. Relation

 

릴레이션(Relation)은 각 개체를 표현하는 속성들의 관계들로 이루어져 있으며, 릴레이션에서 사용되는 용어들은 다음과 같다.

1. 튜플(Tuple) 

 

테이블에서 말하는 행(row)과 유사하고, 레코드(Record)라고도 부른다. 

한 행을 구성하는 속성들의 집합이며, 기존에 각 속성의 값은 더 이상 분해할 수 없는 원자값만 가질 수 있었지만, 요즘은 리스트나 복잡한 자료구조도 가능하다. 

그리고, 튜플 내에서 특정 속성은 아직 정의되지 않았거나 알려지지 않았다는 의미를 갖는 'NULL'이라는 특별한 값을 가질 수 있다. 

 

 

2. 속성(Attribute)

 

테이블에서 말하는 열(column)과 유사하다. 

 

 

3. 도메인(Domain)

 

속성이 가질 수 있는 데이터의 집합이다. 데이터의 타입이나, 범위 또는 값의 범위를 말한다. 예를 들어 위의 예시에서 학년 속성이 가질 수 있는 값을 숫자로 정해두면 실수로 문자 등이 들어오는 경우를 방지할 수 있다.   

 

 

4. 차수(Degree)

 

릴레이션에 들어있는 속성의 개수이다. 일반적으로 릴레이션의 차수는 자주 변하지 않는 특성을 갖는다. 위의 그림에서 차수는 4이다. 차수가 n인 릴레이션을 n-ary relation이라고 부르기도 한다. 

 

 

5. 기수(Cardinality)

 

릴레이션에 들어있는 튜플의 개수이다. 일반적으로 기수는 자주 변하는 특성을 갖는다. 위의 그림에서 기수는 3이다.

 

 

6. 스키마(Schema)

 

릴레이션의 이름과 릴레이션에 포함된 모든 속성의 이름으로 정의하는 릴레이션의 논리적 구조이다. 릴레이션의 전체 구조를 파악할 수 있다. 

 

 

7. 인스턴스(Instance)

 

인스턴스는 튜플의 집합으로, 실시간으로 변하며 릴레이션을 디자인할 때에는 인스턴스는 고려하지 않는다. 


그럼 릴레이션의 특징으로는 무엇이 있을까? 

 

- 릴레이션은 순서가 없는 집합(unordered set)의 개념이다.

- 튜플 간, 속성 간 순서가 없고, 동일한 튜플은 존재할 수 없으니 각 튜플이 모두 유일하며 각각 식별 가능하다. 

- 튜플들의 삽입, 갱신, 삭제가 실시간으로 발생하므로 릴레이션은 자주 변한다. 

 

릴레이션에서 튜플을 구별하기 위해서는 속성의 집합으로 구성되는 Key를 이용한다. Key는 유일성최소성에 따라서 종류가 구분되는데, 유일성은 하나의 키 값으로 하나의 튜플을 유일하게 선택할 수 있는지를 의미하고, 최소성은 키를 구성하는 속성 하나를 제거하면 튜플을 유일하게 선택할 수 없는지를 의미한다. 

 

Key의 범주는 다음과 같다.  

1. Super Key (슈퍼키)

- 릴레이션에서 튜플을 식별할 수 있는 유니크한 속성의 집합, 유일성을 가짐. 즉, 위의 예시에서 (학번, 이름), (학번, 이름, 학년), (학번, 전공) 등이 모두 Super Key가 될 수 있다. 

 

2. Candidate Key (후보키)

- Super Key 중에서 최소성을 갖는 Key. 위의 예시에서는 (학번)이 될 것이다. 

- DBMS는 새로운 튜플을 릴레이션에 삽입할 때, 기존의 튜플과 후보키를 비교하여 중복 여부를 확인한다.

 

3. Primary Key (기본키)

- Candidate Key 중의 하나가 Primary Key가 되며, 개체 식별자로 튜플을 유일하게 식별할 수 있다. 

- 일부 DBMS는 primary key를 별도로 정하지 않으면 자동적으로 내부 primary key를 생성한다. 

- NULL값을 갖지 않는 속성이어야 하며, 데이터의 빠른 검색을 위해 간단한 값을 갖는 속성이 유리하다. 

 

4. Alternate Key (대체키)

- Primary Key를 제외한 나머지 Candidate Key를 의미한다. Primary Key가 될 수 있는 후보들이다. 

 

5. Foreign Key (외래키)

- 한 릴레이션으로부터 다른 릴레이션의 튜플을 참조하는 데 사용되는 속성이다. 

 

 

 

  4. Relational Model의 특징

 

관계형 모델(Relational Model)의 장점은 다음과 같다.

 

1. 높은 데이터 독립성으로 데이터베이스의 논리 계층과 물리 계층을 명확하게 구분하여, 데이터와 사용자 간의 상호작용이 데이터 내부 구조에 영향을 받지 않음

2. 모델의 구조가 단순함(2차원 테이블)

3. 집합 이론이라는 수학적 이론에 기반하여 모델이 강건함

4. SQL이라는 간단한 비절차적 언어로 사용자는 데이터를 어떻게 찾을지는 필요 없고 원하는 데이터만 명시해도 됨

 

관계형 모델에는 무결성을 유지하기 위한 제약조건이 있다. 무결성이란 데이터의 내용이 서로 모순되는 것이 없고, 데이터베이스에 있는 제약을 완전히 만족하는 성질을 말한다. 이를 통해 데이터베이스의 안정성과 정확성을 보장한다.

대부분 앞에서 설명한 내용이지만 요약해서 한 번 더 보자.

 

1. 개체 무결성 : 기본키(Primary Key)를 구성하는 어떠한 속성 값이라도 중복되는 값이나 NULL이 올 수 없다.

2. 참조 무결성 : 참조할 수 없는 외래키(Foreign Key) 값은 가질 수 없다. 참조하는 릴레이션의 기본키와 동일해야 하므로 NULL 또한 올 수 없다. 

3. 도메인 무결성 : 각 속성 값은 반드시 정의된 도메인만을 가져야 한다. 

 

 

PC로 보시는 것을 권장합니다. 

피드백은 언제나 환영입니다. 댓글로 달아주세요 ^-^

 

 

반응형