본문 바로가기
AI, 빅데이터/Database

[데이터베이스] - 관계형 데이터 모델

by Foxy현 2022. 10. 11.
728x90
반응형

안녕하세요! 저번 글에서는 데이터베이스 시스템에 대해서 다뤘었죠~

2022.10.04 - [AI, 빅데이터/Database] - Database - 데이터베이스 시스템

데이터베이스 시스템이란 DB + User + DBMS + HW로 구성된 시스템이라고 말씀드렸었는데요,

오늘은 데이터베이스의 모델 중 하나인 관계형 데이터 모델에 대해서 설명해드리고자 합니다.

 

먼저, 관계형 데이터 모델이란 무엇일까요?

데이터 구조는 테이블을 사용하고, 중첩된 복잡한 구조가 없으며, SQL을 제공하는.. 즉! DB 설계와 효율적인 질의 처리 면에서 뛰어난 장점을 갖는 모델을 말합니다.

데이터의 독립성을 높이고, 단순한 구조이며, 한 번에 다수의 튜플들의 집합을 조작하기 위한 목적을 가진 모델이죠.

 

데이터 모델의 구성 요소는 총 3가지!

데이터 구조 + 연산 + 제약 조건의 구조로 이루어져 있습니다.

그렇다면 관계형 데이터 모델의 구성 요소는 무엇일까요?

앞서 데이터 모델의 구성 요소는 3가지라고 말씀드렸는데, RDB 역시 3가지로 구성됩니다.

릴레이션(데이터 구조) + 관계 대수(연산) + 무결성 제약조건(제약 조건)으로 구성됩니다.

 

여기서 릴레이션은 무엇일까요?

바로, 어딘가 익숙한 이런 구조의 테이블을 릴레이션이라고 부릅니다.

여기서 릴레이션 안의 속성(학번, 이름, 학년, 성별)의 개수를 차수(Degree)라고 하고, 튜플의 개수를 카디날리티(Cardinality)라고 합니다.

이 표에서 차수는 4이고, 카디날리티는 3이라고 할 수 있겠네요. 또한 이 릴레이션의 이름을 '학생'이라고 부릅니다.

또한 릴레이션 스키마는 이름과 속성의 집합이며, 일종의 Framework라고 할 수 있습니다.

* 릴레이션 이름(속성 1, 속성 2,... 속성 N)의 구조이죠.

인스턴스라는 개념 또한 존재하는데, 튜플들의 집합이며 스키마를 뺀 데이터의 집합입니다. 동적이며 수정, 삭제, 삽입 등의 연산으로 개수가 증가하고 감소합니다.

도메인은 각 속성이 취할 수 있는 모든 값들의 집합을 의미하며

* Domain 이름 CHAR(10)의 구조입니다.

여기서 여러 도메인을 명시하는데, 이처럼 서로 다른 도메인을 명시하는 이유는 합집합, 교집합, 차집합 등을 제한하여 의미 있는 연산만을 허용하기 위함입니다.

 

이런 릴레이션은 각 릴레이션에 오직 하나의 튜플 타입만 포함하며, 속성과 튜플의 순서는 상관없고, 각 속성의 이름은 한 릴레이션 내에서만 고유하다는 특징이 있습니다.

 

또한 관계 대수에 대해서 간략히 설명드리자면, 릴레이션 처리를 위한 연산의 집합이며 집합 연산(합집합, 교집합, 차집합, 카티션 프로젝트) + 관계 연산(셀렉트, 프로젝트, 조인, 디비전)으로 이루어져 있습니다. 이 내용은 다음 글에서 좀 더 자세히 다뤄보도록 하겠습니다.

 

마지막으로 무결성 제약조건입니다. 

적절한 의미적 조건을 사용하여 인스턴스를 제한합니다. 

데이터 무결성, 도메인 제약조건, 키 제약조건이 있습니다.

 

데이터 무결성이란 데이터의 정확성을 의미하며 DB 상태를 정의하는 규칙들을 묵시적으로 정의합니다.

데이터베이스에서는 자동적으로 무결성을 검사하므로 응용 프로그램들은 일관성 조건을 검사할 필요가 없습니다.

주로, 데이터 타입의 변수를 맞게 배정시키고 데이터를 비교합니다.

 

도메인 제약 조건이란 속성 값들이 반드시 원자 값이며, 디폴트 값을 지정하고 범위 지정을 하는 제약을 의미합니다.

데이터 형식을 통해 값들의 유형을 제한하고, 속성의 디폴트 값을 지정하며 값들의 범위를 제한합니다.

 

키 제약 조건이란 키 속성에 중복된 값이 존재하지 않는 조건입니다.

키 제약 조건에는 '기본키와 엔티티 무결성 제약 조건', '외래 키와 참조 무결성 제약 조건'이 있습니다.

 

기본키와 엔티티 무결성 제약 조건은 기본키를 구성하는 어떤 속성들도 널값을 가질 수 없으며 데이터 정의문에서 어떤 속성이 기본 키의 구성 요소인지를 명시적으로 알려줘야 하는 제약 조건입니다. 

 

외래키와 참조 무결성 제약 조건은 두 릴레이션의 연관된 튜플들 사이의 일관성을 유지하는 데 사용됩니다.

이러한 참조 무결성 제약 조건을 유지하기 위해 제한, 연쇄, 널 값 넣기, 디폴트 값 지정, 수정 등의 방법이 있습니다.

제한은 기본키 삭제 불가하게 하고, 연쇄는 기본키가 삭제되면 참고키고 함께 삭제되는 것을 말합니다.

 

이러한 무결성 제약 조건을 유지하기 위해 갱신 연산은 삽입, 삭제, 수정 연산으로 구분하여 정확도를 상승시키고 데이터 중복을 최소화합니다.


오늘은 이렇게 관계형 데이터 모델에 대해서 알아보았습니다!

공부하실 때 참고하시면 좋을 것 같네요

 

 

 

 

728x90
반응형

'AI, 빅데이터 > Database' 카테고리의 다른 글

[데이터베이스] 정규화  (0) 2022.10.19
[데이터베이스] 데이터 모델  (1) 2022.10.14
[데이터베이스] - 관계 대수  (0) 2022.10.13
MySQL설치 for Mac  (2) 2022.10.05
Database - 데이터베이스 시스템  (1) 2022.10.04