-
6일차 - 관계 데이터 모델링CS지식/데이터베이스 2021. 4. 23. 23:39
오늘은 관계 데이터 모델링에 대해 배웠다.
지난 시간에 배운 개념 데이터 모델링의 결과물인 E-R다이어그램을 토대로 진행되는 것으로 데이터베이스 설계에서는 3단계(논리적 설계)에 해당하는 내용이다.
1. 관계 데이터 모델의 기본개념
관계 데이터 모델은 개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델로 하나의 개체에 대한 데이터를 하나의 릴레이션에 저장하는 것이다.
예를 들어 개념 데이터 모델링을 통해 학생이라는 개체가 나왔다면 이 학생이라는 하나의 개체에 대한 데이터를 모아서
릴레이션에 저장한다는 것이다.
릴레이션은 하나의 개체에 대한 데이터를 2차원 테이블 구조로 저장한 것이다.
2차원 테이블이라고 하면 표와 비슷한 구조인데 표는 행과 열로 구성되어 있다.
릴레이션에서는 행을 튜플이라 부르고 열을 속성, 애트리뷰트라고 부른다.
튜플, 속성과 함께 알아두어야 할 릴레이션을 구성하는 한 가지 개념은 도메인이다.
도메인은 하나의 속성이 가질 수 있는 모든 값의 집합을 의미하며 속성 값을 입력 및 수정할 때 적합성의 판단 기준이 된다. 일반적으로 INT, CHAR, FLOAT와 같은 데이터 타입으로 정의되면 문자의 길이까지 정의할 수 있다.
그리고 하나의 릴레이션에서 속성의 전체 갯수를 차수(degree)라 하고 튜플의 전체 갯수를 카디널리티(cardinality)라고 한다.
2. 릴레이션의 특성
관계 데이터 모델은 릴레이션에 데이터들을 저장하는 것이라고 간단히 이해 할 수 있다.
그러면 릴레이션의 특성에 대해 알아보자.
1) 튜플의 유일성
하나의 릴레이션에는 동일한 튜플이 존재할 수 없다.
즉, 모든 속성에 대한 값이 동일한 열이 중복적으로 존재할 수 없다는 것이다.
2) 튜플의 무순서
하나의 릴레이션에서 튜플 사이의 순서는 무의미하다.
3) 속성의 무순서
하나의 릴레이션에서 속성 사이의 순서는 무의미하다.
4) 속성의 원자성
속성 값으로 원자값만 사용할 수 있다.
무슨 의미냐하면 한 속성에 대한 값으로 여러 개의 값이 들어갈 수 없다는 것이다.
3. 키(Key)
릴레이션과 함께 알아두어야 할 개념으로 키(key)이다.
키는 릴레이션에서 튜플들을 유일하게 구별하는 속성 또는 속성들의 집합을 의미한다.
키의 특성으로는 유일성, 최소성 2가지가 존재한다.
1) 유일성
하나의 릴레이션에서 모든 튜플은 서로 다른 키 값을 가져야 한다.
즉, A 튜플에서 키로 정의된 속성의 값과 B 튜플에서 키로 정의된 속성의 값이 같다면 그 속성은 키가 될 수 없다는 것이다.
2) 최소성
꼭 필요한 최소한의 속성들로만 키를 구성해야한다.
키는 하나의 속성 또는 속성들의 집합으로 구성될 수 있는데 하나의 속성만으로 키가 될 수 있는데 굳이 다른 속성과 합쳐 집합으로 키를 이루면 최소성이 보장되지 않는다는 것이다.
그러면 키의 종류에는 어떠한 것들이 있을까?
1) 슈퍼키(super key)
슈퍼키는 유일성을 만족하는 속성 또는 속성들의 집합니다.
2) 후보키(Candidate key)
후보키는 유일성과 최소성 둘 다 만족하는 속성 또는 속성들의 집합이다.
3) 기본키(Primary key)
후보키 중에서 기본적으로 사용하기 위해 선택한 키이다.
기본키가 되기 위한 조건이 더 존재한다.
null 값을 가질 수 있는 속성이 포함된 후보키는 기본키가 되지 못하고 값이 자주 변형 될 수 있는 특성이 포함된 후보키는 부적합하다.
4) 대체키(Alternate key)
대체키는 기본키로 선택되지 못한 후보키를 의미한다.
4. 외래키(Foregin Key)
외래키도 키의 종류 중 하나이지만 설명할 것이 많아 따로 큰 제목으로 잡았다.
외래키는 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합으로 서로 다른 릴레이션 간의 관계를 표현한다.
외래키의 특성은 외래키 속성과 그것이 참조하는 기본키 속성의 이름은 달라도 되지만 도메인은 같아야한다.
하나의 릴레이션에는 외래키가 여러 개 존재할 수도 있고 외래키를 기본키로 사용할 수도 있다.
하나의 릴레이션에서 기본키를 참조하는 외래키도 정의가 가능하고 외래키 속성은 null 값을 허용한다.
5. 무결성 제약조건(Integrity Constraint)
무결성 제약조건은 데이터의 무결성을 보장하고 일관된 상태로 유지하기 위한 규칙이다.
여기서 무결성이란 데이터를 결함이 없는 상태로 유지하는 것이다.
무결성 제약조건에는 2가지가 존재한다.
1) 개체 무결성 제약조건
기본키를 구성하는 모든 속성은 null값을 가질 수 없다.
2) 참조 무결성 제약조건
외래키는 참조할 수 없는 값을 가질 수 없다.
예를 들어 설명하면 A릴레이션의 외래키로 설정된 ID라는 속성이 있고 이것은 B릴레이션의 ID 속성을 참조한다.
A 릴레이션의 외래키의 값으로 aaaaa가 있는데 B릴레이션의 ID 속성에는 aaaaa 값이 없다면
이것은 참조 무결성 제약조건을 위반한 것이다.
'CS지식 > 데이터베이스' 카테고리의 다른 글
8일차 - 정규화 (0) 2021.04.30 7일차 - 관계 데이터 모델링: 실습 (0) 2021.04.27 5일차 - 개념적 데이터 모델링: 실습 (0) 2021.04.20 4일차 - 데이터 모델링 (0) 2021.04.17 3일차 - 데이터베이스 시스템 (0) 2021.04.13