-
[한기교] SQL 활용 필기(2) - 데이터모델, 제약조건비전공자 공부일기/:: DB - SQL 2020. 5. 2. 17:12
< 데이터 모델 >
모델 D = <S, O, C>
ㅁ Structure 구조 : 데이터의 구조
- 정적 성질, 개체 타입과 이들 간의 관계를 명세함
ㅁ Operation 연산 : 데이터의 성질
- 개체 인스턴스를 처리하는 작업에 대한 명세
- 데이터 조작 기법
ㅁ Constraint 제약조건 : 데이터의 논리적 제약
- 구조로부터 파생, 의미적 제약
- 데이터 조작의 한계를 표현한 규정
ㅁ 데이터 모델의 예
- '정수' 데이터의 모델을 살펴보면,
구조: ..., -2, -1, 0, 1, 2, ...
연산: 사칙연산(+, -, x, /)
제약조건: 정수의 세계로 한정함
- 정수/정수 --> 정의할 수 없는 경우가 있음
< 관계형 데이터 모델의 구조와 연산 >
ㅁ 관계형 데이터 모델을 사용하는 이유
- 모델의 구조가 단순함
- 집합이론(Set Theory)이라는 수학적 이론에 기반하기 때문에 모델이 강건(Sound)함
- SQL이라는 간단한 비절차적 언어로 접근하므로 사용하기 쉬움
ㅁ 관계형 데이터 모델
- 구조: Relation(또는 Table)
- 연산: 관계대수(Relational Algebra)
- 제약조건: 무결성 제약 조건
ㅁ 관계형 데이터 모델의 구조
- 릴레이션
- 2차원 테이블 형태
- 테이블의 행(Row) => 튜플
- 테이블의 열(Column) => 속성 (Attribute)
--- 도메인(Domain): 속성이 가질 수 있는 값의 범위
* 릴레이션은 튜플들의 집합이다! (기억하기)
ㅁ 릴레이션의 특징
1) 튜플의 유일성
- 릴레이션은 튜플의 집합임
- 집합은 중복을 허용하지 않음
2) 튜플의 무순서성
- 릴레이션은 튜플의 집합임
- 집합에서 원소들 간의 순서는 없음
3) 속성의 무순서성
- 릴레이션 스키마는 속성들의 집합임 --> 순서가 없다!
4) 속성의 원자성 (Atomicity)
- 속성의 값은 원자값임
- 즉, 논리적으로 더 분해할 수 없음
ㅁ 관계형 데이터 모델의 연산
- SQL: 사용자 위주
- 관계 대수(Relational Algebra): 시스템 관점
--- 수학적인 연산자들을 이용해 컴퓨터가 질의문 해석
ㅁ 일반 집합 연산자
- 합집합(UNION, ∪)
- 교집합(INTERSECT, ∩)
- 차집합(DIFFERENCE, -)
- 카티션 프로덕트(CARTESIAN PRODUCT, ×)
ㅁ 합병호환성
: 합집합, 교집합, 차집합 연산의 피연산자(Relation)들이 지켜야 할 제약조건
--- 1) 차수(Degree: 속성의 수)가 같아야 함
--- 2) 대응되는 속성(Attribute) 쌍 별로 타입(또는 도메인)이 같아야 함
--- 3) 대응되는 속성(Attribute) 쌍 별로 의미(Semantic)가 같아야 함 >> 사람의 판단 영역
ㅁ 순수 관계 연산자
: 릴레이션이 2차원 구조이기 때문에 유도되는 연산자
- 셀렉트(SELECT, σ)
- 프로젝트(PROJECT, Π)
- 조인(JOIN, ▷◁)
- 디비전(DIVISION, ÷)
-이게 뭔소린고
< 관계형 데이터 모델의 제약조건 >
ㅁ 키(Key)
: 하나의 테이블 내에서 각 튜플의 유일하게 식별할 수 있는 속성들의 집합
ㅁ 실생활의 키 --> 오직 하나!
- 하나의 자물쇠를 열 수 있는 열쇠(키)는 오직 하나임
- 생활의 편리성을 위하여 키를 복제하여 쓰지만, 논리적으로는 하나임
ㅁ 후보키(Candidate Key)
: 한 릴레이션 R(A1, ..., An)에 대한 속성의 집합 K = {Ai, ..., Aj}으로 다음과 같은 성질을 만족함
- 유일성(Uniqueness) : 서로 다른 두 튜플의 속성집합 K의 값은 같지 않음
- 최소성(Minimality) : K는 서로 다른 두 튜플을 식별하기 위한 최소한의 속성들로만 이루어져 있음
- 릴레이션의 특징 : 튜플의 유일성
- 후보키 : 튜플의 유일성을 유지시키는 최소 속성 집합
ㅁ 슈퍼키(Super Key)
- 유일성을 만족하는 속성 집합
- 최소성을 만족하지 않아도 됨
- 일반적으로 후보키는 수퍼키의 부분 집합임 <--> 수퍼키는 후보키를 포함함
ㅁ 기본키(Primary Key)
- 하나의 릴레이션에는 후보키가 여러개 있을 수 있음
- 여러 개의 후보키 중 DBA가 지정한 하나의 키임
ㅁ 대체키(Alternative Key)
- 후보키 중 기본키를 제외한 나머지 후보키
ㅁ 외래키(Foreign Key)
- 한 릴레이션 R1의 튜플과 다른 릴레이션 R2의 하나의 튜플과의 연관 관계를 표시하기 위하여 사용
- R1의 속성집합 FK의 도메인이 R2의 기본키일 때, FK를 R1의 외래키라 함
- R1을 참조 릴레이션, R2를 피참조 릴레이션이라고 함
(R1과 R2가 다른 릴레이션일 필요는 없음)
< 무결성 제약조건 >
ㅁ 개체 무결성
: 서로 다른 두 튜플은 같을 수 없음
: 기본키 값은 언제나 어느때나 NULL일 수 없다!!!!!
ㅁ 참조 무결성
- 외래키 값은 피참조 릴레이션의 기본키 값 or NULL
- but, 제약조건을 추가로 지정하여 NULL을 가질 수 없도록 제약 가능
ㅁ 도메인 무결성
- 속성 값은 해당 속성 도메인에 속한 값들 중 하나이어야 함
- DBMS는 데이터베이스의 상태 변화(삽입, 갱신, 삭제)에도 항상 무결성 제약조건을 검사하고 유지시킴
'비전공자 공부일기 > :: DB - SQL' 카테고리의 다른 글
[한기교] SQL 활용 필기(4) - 데이터 구조 (0) 2020.05.02 [한기교] SQL 활용 필기(3) - SQL 기본구문 (0) 2020.05.02 [한기교] SQL 활용 필기(1) - 데이터베이스의 정의, 역사 (0) 2020.05.02 JDBC - 과제 제출 방법 (jdbc 프로그램 저장법) (1) 2019.06.05 JDBC - 정규표현식 (3) 2019.06.04