관계 데이터 모델
관계 데이터 모델은 가장 개념이 단순한 구현 데이터 모델 중 하나이다. 이러한 관계 데이터 모델이 인기를 얻을 수 있었던 이유는 다음과 같다.
- 간단한 테이블(릴레이션) 구조로 표현
- 집합 위주로 데이터 처리
- 중첩된 복잡한 구조 업음
- 이론이 잘 정립되어있음
- 좋은 성능
- 관계 데이터베이스 설계 및 질의처리에서 뛰어남
위 내용에서 살펴보면 장점에는 크게 간단하다는 점, 널리 사용되고 있어 정보가 많다는 점, 성능이 좋다는 점 등이 있다.
다음으로 관계 데이터 모델의 핵심적인 특징에 대해 알아보면 다음과 같다.
- 모든 데이터를 테이블의 관점에서 구성
- 데이터를 연결하기 위해 링크나 포인터 사용하지 않음
- 데이터베이스 레코드의 순서와 무관함
- 선언적 질의어 통해 데이터 접근 가능(내부 방식 알 필요 없음)
위 내용에서 살펴보면 특징에는 테이블로 구성한다는 점, 링크나 포인터를 사용하지 않는다는 점, 내부 작동 방식에 대해 알 필요가 없다는 점 등이 있다.
관계 데이터 모델 용어
- 릴레이션: 2차원 테이블
- 투플(레코드): 행
- 애트리뷰트: 열
- 도메인: 애트리뷰트가 가질 수 있는 값의 범주
- 차수: 애트리뷰트의 수
- 카디날리티: 투플의 수
- Null Value: '알려지지 않음', '적용할 수 없음'을 의미
- 릴레이션 스키마: 릴레이션을 구성하는 틀, 애트리뷰트의 집합
- 릴레이션 인스턴스: 틀에 맞춰 작성된 데이터들, 투플의 집합
- 관계 데이터베이스 스키마: 하나 이상의 릴레이션 스키마들로 구성
- 관계 데이터베이스 인스턴스: 릴레이션 인스턴스들의 모임
릴레이션의 특성
릴레이션이란 투플의 집합이다. 그리고 당연하게도 한 애트리뷰트 내의 값은 같은 도메인 값을 가져야 하며, 애트리뷰트의 배치 순서는 중요하지 않다.
여기서 알아둬야 할 내용은 키가 존재하므로 중복된 투플이 존재하지 않는다는 점과 각 애트리뷰트는 원자값을 가져야 한다는 점이다.
릴레이션의 키(Key)
키는 식별하기 위해 필요한 애트리뷰트를 말한다. 이러한 키가 되기 위한 조건은 다음과 같다.
- 유일성(Uniqueness)
- 최소성(Minimality)
- 불변성
- 수퍼 키: 특정 투플을 고유하게 식별할 수 있도록 하는 것. 여러 개 지정 가능
- 후보 키: 투플을 고유하게 식별하는 최소한의 애트리뷰트들의 모임. 복합 키라고도 불림
- 기본 키: 후보 키 가운데 DB 관리자가 지정하여 정해진 키. 기본키로 지정하기 위해 인위적인 애트리뷰트를 추가해도 무관함
- 대체 키: 기본 키가 아닌 후보 키
- 외래 키: 다른 릴레이션의 기본 키를 참조하는 애트리뷰트. 관계를 표현하기 위해 사용되기도 함
무결성 제약조건(Data Integrity Constraint)
- 데이터의 정확성 및 유효성 의미
- 데이터베이스가 갱신될 때 DBMS가 일관성 조건을 검사하므로 응용 프로그램들은 따로 검사할 필요 없음
쉽게 말해 데이터가 의도된 대로 정확하게 존재하는지를 판단하는 척도이다. 이러한 무결성 제약조건에는 다음과 같은 4가지 종류가 있다.
도메인 제약조건(Domain Constraint)
- 각 애트리뷰트 값이 원자값이어야 함
- 애트리뷰트 값의 Default 값과 범위를 지정할 수 있음
- Domain을 제한할 수 있다.
테이블 안에 들어가는 Value들의 값에 대한 제약조건이다. 값에는 하나의 원자값만 지정될 수 있으며, 해당 값의 범위는 도메인 규칙을 따라야 하며, Default 값을 지정할 수 있다는 내용이다.
키 제약조건(Key Constraint)
- 키 애트리뷰트는 중복된 값이 존재할 수 없다.
당연한 내용이다. 릴레이션을 구분하기 위해서는 키 값이 중복되어서는 안 된다.
엔티티 무결성 제약조건(Entity Integrity Constraint)
- 릴레이션으 기본 키를 구성하는 어떤 애트리뷰트도 Null 값을 가질 수 없다.
이 또한 당연한 내용이다. 기본 키가 Null이면 어찌 구분하리.
참조 무결성 제약조건(Referential Integrity Constraint)
- 두 릴레이션에 연관될 투플 사이의 일관성을 유지
- 외래 키는 관계 데이터베이스에서 관계를 나타내므로 매우 중요
- 자식 릴레이션의 외래 키가 부모 릴레이션의 기본 키를 참조할 때, 다음 두 조건 중 하나를 만족하면 성립함
- 외래 키 값이 부모 특정 릴레이션의 기본 키 값과 같음.
- 만약 기본 키가 없다면 널 값을 가짐.
여기서 알아둘 점은 외래 키에 해당하는 값이 부모 릴레이션의 기본 키 값과 같아야 한다는 점이다.
무결성 제약조건의 유지
이러한 무결성 제약조건이 유지되는 원리는, DB의 갱신 연산에 해당하는 삽입, 삭제, 수정 작업이 발생할 때마다 DBMS가 무결성 제약조건을 검사한 뒤에 실행할지 말지를 결정하기 때문이다.
이에 대한 자세한 순서를 살펴보면 다음과 같다.
- 도메인 제약조건 확인
- 키 제약조건 확인
- 엔티티 무결성 제약조건 확인
- 참조 무결성 제약조건 확인
앞서 살펴본 제약조건의 순서와 동일함을 확인할 수 있다.
다음으로 DB의 갱신 연산 별 DBMS의 처리 시 발생할 수 있는 상황들에 대해 살펴보면 다음과 같다.
삽입 연산
- 참조되는 릴레이션에 새 투플 삽입 시에는 참조 무결성 제약조건을 위배하지 않음
- 이를 제외한 도메인, 키, 엔티티 무결성 제약조건은 위배 가능
- 참조하는 릴레이션에 새 투플 삽입 시에는 모든 제약조건 위배 가능
삭제 연산
- 참조하는 릴레이션에서 투플 삭제 시에는 모든 제약조건 위배하지 않음
- 참조되는 릴레이션에서 추플 삭제 시에는 참조 무결성 제약조건 위배 가능
수정 연산
- 수정하는 애트리뷰트가 기본 키나 외래 키가 아니라면 참조 무결성 제약조건을 위배하지 않음
- 수정하는 애트리뷰트가 기본 키나 외래 키가 맞다면 삭제 연산의 경우와 비슷한 결과 초래
참조 무결성 제약조건 만족을 위해 DBMS가 제공하는 옵션
- 제한(Restricted): 제약조건 위배하는 연산을 거절
- 연쇄(Cascade): 위배 시 자동으로 연쇄 삭제 수행
- 널 값(Nullify): 참조되는 릴레이션 삭제 시 참조하는 릴레이션의 외래 키에 Null 삽입
- 디폴트 값: 3번 과정 대신 미리 지정한 디폴트 값 삽입
'대학교 공부 > 데이터베이스 (2023)' 카테고리의 다른 글
9주차 - SQL문 기초(테이블 만들기, 테이블 수정하기, 외래 키 설정하기, 속성 수정하기, 테이블 삭제하기) (1) | 2023.12.05 |
---|---|
7주차 - 논리적 설계 단계 (1) | 2023.10.18 |
4주차 - DB 설계자의 역할, 데이터 모델의 종류, 데이터베이스 설계 단계, ER 모델 특징, ER모델 구성 (1) | 2023.10.18 |
3주차 - 데이터베이스 특징, DBMS, 파일 시스템과의 차이, 데이터 모델, 데이터베이스 언어, 데이터베이스 사용자, ANSI/SPARC 아키텍쳐, 데이터 독립성 (1) | 2023.10.18 |
2주차 - 빅데이터, 데이터 사이언티스트, 데이터마이닝, 데이터 관리의 중요성 (0) | 2023.10.18 |