일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 단국대학교 k-mooc
- 블록체인 강의
- stringreader
- 자바문자열구분
- 블록체인강의
- national instruments
- Entity
- 오블완
- 자바스크립트
- StringTokenizer
- 티스토리챌린지
- CSS 기초
- 자바입력받기
- attribute
- K-MOOC 단국대학교 홍보단
- K-MOOC
- biginteger사용법
- 해시
- 블록체인
- 2차원배열정렬
- 시스템프로그래밍
- 딥러닝
- 컴파일시스템
- 디스크블록할당
- 우선순위큐
- 혁신의기술2:신뢰의미래 블록체인을 만나다
- StringBuilder
- html기초
- Node
- 머신러닝
- Today
- Total
열정 실천
007. 관계형 데이터 모델 & 관계형 데이터베이스 제약조건 본문
관계형 데이터 모델
Relation 릴레이션 : 하나의 테이블로 관계형 데이터베이스에서 정보를 구분하여 저장하는 기본 단위
Attribute 속성 : 저장하려는 개체의 항목
Tuple 튜플 : 릴레이션의 각 행, 하나의 레코드
Domain 도메인 : 속성이 가질 수 있는 값들의 집합 (ex: 학년 속성이라면 도메인 값는 1,2,3,4)
Degree 차수 : 한 릴레이션 안에 있는 속성(Attribute)의 수
Cardinality 카디날리티 : 한 릴레이션에서 튜플의 개수
informal terms | Formal Terms |
Table | Relation |
Column Header | Attribute |
All posible Column Values | Domain |
Row | Tuple |
Table Definition | Schema of a Realation |
Populated(채워진) Table | State od the Realation |
제약 조건 Constraints
데이터베이스에 저장되는 데이터의 정확성을 보장하기 위하려 키를 이용하려 입력되는 데이터에 제한을 주는 것이다.
제약조건 종류 3
1. 키 제약조건
2. 개체 무결성 제약조건
3. 참조 무결성 제약조건
키 제약조건
기본 키(Primary Key)
: 테이블에서 각 행(레코드)을 고유하게 식별하는 데 사용되는 하나 또는 여러 개의 열
- 기본 키는 중복된 값을 가질 수 없고(Unique), NULL 값을 허용하지 않는다.
- 테이블에는 오직 하나의 기본 키만 존재할 수 있다.
예: 학생 테이블에서 '학번'이 기본 키로 설정될 수 있다. 각 학번은 고유하며 중복되지 않는다.
후보 키(Candidate Key)
: 기본 키로 선택될 수 있는 모든 키
- 후보 키는 기본 키와 마찬가지로 중복된 값을 가질 수 없고, NULL 값을 허용하지 않는다.
- 테이블에 여러 개의 후보 키가 있을 수 있으며, 이 중 하나만 기본 키로 선택된다.
- 릴레이션에 있는 모든 튜플에 대해서 유일성과 최소성을 만족시킨다.
- 유일성(Unique) : 하나의 키 값으로 하나의 튜플만을 유일하게 식별할 수 있어야 한다.
- 최소성(Minimality) : 모든 레코드들을 유일하게 식별하는 데 꼭 필요한 속성으로만 구성되어야 한다.
예: '주민등록번호', '학번' 모두 고유하므로 후보 키가 될 수 있지만, 이 중 '학번'만 기본 키로 선택될 수 있다.
대체 키(Alternate Key)
: 후보 키 중에서 기본 키로 선택되지 않은 키
- 기본 키로 선택되지 않았지만 여전히 고유성을 보장한다.
- 사용자는 대체 키를 이용해 데이터를 조회할 수 있다.
예: '학번'이 기본 키로 선택되었다면, '주민등록번호'는 대체 키가 될 수 있다.
외래 키(Foreign Key)
: 한 테이블에서 다른 테이블의 기본 키를 참조하는 열 또는 열들의 조합. 외래 키는 두 테이블 간의 관계를 설정하는 데 사용된다.
- 외래 키는 참조되는 테이블의 기본 키를 참조하며, 해당 테이블에 존재하는 값만 외래 키 열에 입력될 수 있다.
- 외래 키는 여러 개가 존재할 수 있으며, 테이블 간 데이터의 무결성을 보장한다.
예: 주문 테이블에서 '고객 ID'가 고객 테이블의 'ID'를 참조하는 외래 키가 될 수 있다.
슈퍼 키(Super Key)
: 테이블 내에서 레코드를 고유하게 식별할 수 있는 모든 열 또는 열들의 집합.
- 슈퍼 키는 하나 이상의 열로 구성될 수 있으며, 중복되지 않는 값을 가진다.
- 슈퍼 키에는 기본 키, 후보 키 등이 포함된다.
- 모든 튜플에 대해 유일성은 만족시키지만, 최소성은 만족시키지 못한다.
예: '주민등록번호'나 '학번'은 개별적으로 슈퍼 키가 될 수 있으며, '이름 + 생년월일'과 같은 조합도 슈퍼 키가 될 수 있다.
복합 키(Composite Key)
: 두 개 이상의 열을 조합하여 레코드를 고유하게 식별할 때 사용하는 키
- 단일 열로 고유하게 식별할 수 없을 때 여러 열을 조합하여 고유성을 보장한다.
- 복합 키는 반드시 두 개 이상의 열로 구성된다.
예: '학생 ID'와 '과목 ID'를 함께 사용하여 성적 테이블의 레코드를 고유하게 식별할 수 있다. 각각의 값은 중복될 수 있지만, 두 열을 조합하면 고유성을 가질 수 있다.
** 모든 키는 [기본키 / 후보키] , [내부식별자 / 외부식별자] , [단일식별자, 복합식별자] 이다.
-> 3가지 특성 2중 1택
개체 무결성
테이블의 각 행(레코드)을 고유하게 식별할 수 있도록 보장하는 제약
개체 무결성 규칙 1 :: 릴레이션에서 기본키를 구성하는 속성은 NULL값을 가질 수 없다.
개체 무결성 규칙 2 :: 릴레이션에서 기본키를 구성하는 속성은 중복값을 가질 수 없다.
참조 무결성
테이블 간의 관계에서 데이터의 일관성을 보장하는 제약
참조 무결성 규칙 1 :: 외래키 값은 Null이거나 참조 릴레이션의 기본키 값 중에 있어야 한다.
참조 무결성 규칙 2 :: 외래키와 참조하려는 테이블의 기본키는 도메인과 속성의 개수가 같아야 한다.
도메인 무결성
도메인 무결성 규칙 :: 테이블의 각 열이 미리 정의된 데이터 타입과 허용 범위 내에서 값을 가져야 한다.
고유 무결성
고유 무결성 규칙 :: 고유 제약을 설정한 열에 중복된 값 삽입할 수 없다.
NOT NULL 제약
NOT NULL 제약 규칙 :: NOT NULL로 설정된 열에 NULL 값을 삽입할 수 없다.
언제 무결성을 위반하게 될까? 🤔
INSERT
- 범위 & 타입에 맞지 않은 데이터를 삽입할 때 ➡ 도메인 무결성 위반
- 원래 존재하는 키 값을 삽입할 때 ➡ 키 제약 위반
- 존재하지 않는 PK 값을 참조하는 FK 값 삽입 ➡ 참조 무결성 위반
- PK에 NULL값을 삽입할 때 ➡ 개체 무결성 위반
DELETE
- 다른 릴레이션이 참조하고 있는 PK값을 삭제할 때 ➡ 참조 무결성 위반 (RESTRICT, CASCADE로 예방)
UPDATE
- INSERT와 비슷 (원래 있던 값 대신 위반하는 데이터로 변환할 때)
'CS > DATABASE' 카테고리의 다른 글
010. ERD-to-Realation __ E-R 다이어그램보고 테이블 만들기 (0) | 2024.10.05 |
---|---|
008. 관계대수와 관계해석 Relational Algebra & Relational Calculus (2) | 2024.10.03 |
006. SQL - DCL 데이터 조작어 COMMIT, ROLLBACK, GRANT, REVOKE + SAVEPOINT, ROLE (1) | 2024.09.24 |
005. SQL - DML 데이터 조작어 _ 연산 및 SQL함수(산술,문자,집계), GROUP BY (0) | 2024.09.24 |
004. SQL - DML 데이터 조작어 SELECT, INSERT, DELETE, UPDATE (0) | 2024.09.24 |