01. 릴레이션의 특성
릴레이션의 각 투플은 하나의 주장으로 볼 수 있다고 합니다.
위 표를 보면 EMPLOYEE 릴레이션에서 사원번호가 3022인 사원은 이수빈이고, 직급이 과장이며,
3번 부서이고 급여가 2,500,000원임을 보여줍니다.
관계 데이터 모델에서 릴레이션은 투플들의 집합이기 때문에 여러 가지 특성이 있습니다.
① 각 릴레이션은 오직 하나의 레코드 타입만 포함할 수 있습니다.
즉, 오직 한 가지의 유형의 정보만이 각 릴레이션에 저장됨을 보장합니다.
② 한 애트리뷰트 내의 값들은 모두 같은 유형이어야 합니다.
SALARY 애트리뷰트에 부서가 나타날 수 없습니다.
③ 각각의 애트리뷰트들의 순서는 관계 데이터 모델에서 중요하지 않습니다.
한 릴레이션 내의 애트리뷰트들의 순서를 바꾼다고 해서 다른 릴레이션이 되지 않기 때문입니다.
④ 릴레이션은 투플들의 집합이므로 동일한 투플은 두 개 이상 존재할 수 없습니다.
한 릴레이션의 임의의 두 행은 적어도 한 애트리뷰트에서 서로 다른 값을 가집니다.
⑤ 한 투플의 각 애트리뷰트는 원자값을 갖습니다.
값들의 리스트나 집합 등은 허용되지 않으며 두 개 이상의 값은 저장할 수 없습니다.
⑥ 릴레이션은 투플들의 집합이기 때문에 투플들의 순서는 중요하지 않습니다.
집합 내에서 원소들의 순서는 무의미합니다. { ㄱ, ㄴ, ㄷ } = { ㄴ, ㄷ, ㄱ }
⑦ 각 애트리뷰트의 이름은 한 릴레이션 내에서만 고유합니다.
따라서 NAME이라는 애트리뷰트가 두 릴레이션에 속할 수 있습니다. 하지만 한 릴레이션 내에는 NAME이라는
애트리뷰트가 두 개 이상 있을 수 없습니다.
02. 릴레이션의 키
특정 투플을 검색하거나 다른 투플들과 연관시킬 수 있도록 하기 위해서는 한 릴레이션 내의 각 투플을
그 투플을 애트리뷰트들의 값을 사용하여 고유하게 구분할 수 있어야 합니다.
릴레이션의 키는 각 투플을 고유하게 식별할 수 있는 하나 이상의 애트리뷰트들의 모임을 일컫습니다.
① 일반적으로 릴레이션의 키는 두 릴레이션을 서로 연관시키는 데 사용합니다.
한 릴레이션의 어떤 키의 값이 다른 릴레이션에 나타나면 두 릴레이션의 해당 투플들이 서로 연관되었음을
알 수 있습니다.
② 릴레이션의 투플들의 접근 속도를 높이기 위해 키에 인덱스를 만들어서 사용합니다.
키가 작을수록 인덱스의 크기가 줄어들며, 인덱스를 검색하는 시간이 단축되기 때문에 작게 사용합니다.
슈퍼 키(superkey)
슈퍼 키는 한 릴레이션 내의 특정 투플을 고유하게 식별하는 하나의 애트리뷰트 또는 애트리뷰트들의 집합입니다.
신용카드 회사의 고객 릴레이션을 예로 들면,
[신용카드번호]나 [주민등록번호, 이름] 또는 [주민등록번호]는 모두 슈퍼 키가 될 수 있습니다.
슈퍼 키의 문제점은 투플들을 고유하게 식별하는 데 꼭 필요하지 않은 애트리뷰트들이 포함될 수 있다는 것입니다.
후보 키(candidate key)
후보 키는 각 투플을 고유하게 식별하는 최소한의 애트리뷰트들의 모임을 말합니다.
후보 키를 구성하는 애트리뷰트들 중에서 어느 한 애트리뷰트라도 빠지게 된다면 고유하게 식별하는
능력을 상실하게 됩니다.
신용카드 회사의 고객 릴레이션을 예로 들면,
[신용카드번호, 주소]는 신용카드 회사의 고객 릴레이션의 후보 키는 아니지만 [신용카드번호]는 후보 키입니다.
후보 키도 두 개 이상의 애트리뷰트로 이루어질 수 있으며 이런 경우에는 복합 키(composite key)라고 부릅니다.
기본 키(primary key)
한 릴레이션에 후보 키가 두 개 이상 있으면 데이터베이스 설계자 또는 데이터베이스 관리자가 이들 중에서 하나를
기본 키로 설정합니다. 후보 키가 한 개밖에 없다면 그 키가 기본 키가 됩니다.
신용카드 회사의 고객 릴레이션을 예로 들면,
[신용카드번호]와 [주민등록번호]가 후보 키가 될 수 있습니다.
자연스러운 기본 키를 찾을 수 없는 경우에는 레코드 번호와 같이 종종 인위적인 키 애트리뷰트를 릴레이션에
추가할 수 있습니다. 이때 이런 키를 대리 키(surrogate key)라고 합니다.
기본 키를 설정할 때 고려해야 할 몇 가지가 있습니다.
▶︎ 애트리뷰트가 항상 고유한 값을 가지는가
▶︎ 애트리뷰트가 확실하게 널값을 갖지 않을 것인가
▶︎ 애트리뷰트의 값이 변경될 가능성이 높은 애트리뷰트는 피할 것
▶︎ 가능하다면 짧은 문자열이나 작은 정수 값을 갖는 애트리뷰트
▶︎ 가능하면 복합 기본 키를 피할 것
대체 키(alternate key)
대체 키는 기본 키로 선정되지 않은 후보 키를 말합니다.
신용카드 회사의 고객 릴레이션을 예로 들면,
[신용카드번호]를 기본 키로 선정하면 [주민등록번호]는 대체 키가 됩니다.
외래 키(foreign key)
외래 키는 어떤 릴레이션의 기본 키를 참조하는 애트리뷰트입니다.
관계 데이터베이스에서 릴레이션들 간의 관계를 나타내기 위해서 사용됩니다.
▶︎ 다른 릴레이션의 기본 키를 참조하는 외래 키
▶︎ 자체 릴레이션의 기본 키를 참조하는 외래 키
▶︎ 기본 키의 구성요소가 되는 외래 키
03. 무결성 제약조건
데이터 무결성(data integrity)은 데이터의 정확성 또는 유효성을 의미한다고 합니다.
일관된 데이터베이스 상태를 정의하는 규칙들을 묵시적으로 또는 명시적으로 정의할 때 사용합니다.
쉽게 말하자면 무결성 제약조건은 데이터베이스 상태가 만족시켜야 하는 조건입니다.
① 무결성 제약조건의 장점
스키마를 정의할 때 일관성 조건을 오직 한 번만 명시하면 데이터베이스가 갱신될 때 DBMS가 자동적으로
일관성 조건을 검사하므로 응용프로그램들은 일관성 조건을 검사할 필요가 없습니다.
② 무결성 제약조건의 특징
▶︎ 스키마의 한 부분입니다.
▶︎ 데이터베이스의 상태(순서)에 대한 제한합니다.
▶︎ DBMS가 시행합니다.
▶︎ 릴레이션 내의 무결성 제약조건 : 오직 한 릴레이션만 포함합니다.
▶︎ 릴레이션 사이의 무결성 제약조건 : 여러 릴레이션을 포함합니다.
04. 다양한 제약조건
① 도메인 제약조건(domain constraint)
가장 간단한 형태의 제약조건으로, 각 애트리뷰트 값이 반드시 원자값이어야 하며, 데이터 형식을 통해
값들의 유형을 제한하고 디폴트값을 지정하며, 저장되는 값들의 범위를 제한할 수 있습니다.
② 키 제약조건(key constraint)
키 애트리뷰트에 중복된 값이 존재해서는 안된다는 것입니다.
③ 기본 키와 엔티티 무결성 제약조건(entity integrity constraint)
기본 키는 투플들을 고유하게 식별하고, 효율적으로 빠르게 사용할 수 있도록 합니다.
두 개 이상의 투플이 동일한 기본 키 값을 가질 수 없으며, 릴레이션의 기본 키를 구성하는
어떤 애트리뷰트도 널값을 가질 수 없습니다.
④ 외래 키와 참조 무결성 제약조건(referential integrity constraint)
참조 무결성 제약조건은 두 릴레이션의 연관된 투플들 사이의 일관성을 유지하는데 사용됩니다.
관계 데이터베이스가 포인터 없이 오직 릴레이션들로만 이뤄지고, 릴레이션 사이의 관계들이
다른 릴레이션의 기본 키를 참조하는 것을 기반으로 하여 묵시적으로 표현되기 때문에
외래 키의 개념이 중요하게 여겨집니다.
[IT 공부하기/데이터베이스] - 오라클의 개념과 PL / SQL 에 대하여
오라클의 개념과 PL / SQL 에 대하여
01. 오라클이란? 오라클은 오라클 사가 개발한 DBMS로서 가장 높은 시장 점유율과 신뢰성을 갖고 있습니다. 오라클 사는 1979년에 최초의 상용 관계 DBMS를 시장에 내놓은 이후에 꾸준히 기능을 개선
soonirism.tistory.com
'💕IT 공부하기 > 데이터베이스' 카테고리의 다른 글
관계대수와 한계점에 대하여 (0) | 2022.08.23 |
---|---|
오라클의 개념과 PL / SQL 에 대하여 (0) | 2022.08.22 |
관계 데이터 모델 개념의 이해와 제약 조건 (0) | 2022.08.19 |
ANSI/SPARC 아키텍처와 데이터 독립성에 대하여 (0) | 2022.08.18 |
데이터베이스 시스템의 발전 과정을 알아봅시다. (0) | 2022.08.18 |