ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [한기교] 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는 데이터베이스의 상태 변화(삽입, 갱신, 삭제)에도 항상 무결성 제약조건을 검사하고 유지시킴

     

     

     

     

     

    댓글

coding wanee