릴레이션 간의 관계 맺는 방법

슈퍼키 (Super key)

  • 투플을 유일하게 식별할 수 있는 하나의 속성 혹은 속성의 집합
  • 키가 매우 많을 수 있다.
고객번호 : 고객별로 유일한 값이 부여되어 있기에 투플을 식별할 수 있다. 주민번호 : 개인별로 유일한 값이 부여되어 있기에 투플을 식별할 수 있다. 이름 : 동명이인이 있을 경우 유일하게 식별할 수 없다. 주소 : 가족간에는 같은 정보를 사용하기에 식별할 수 없다. 핸드폰 : 한 사람이 여러개의 핸드폰을 사용하거나, 핸드폰을 사용하지 않는 사람이 있을 수 있기에 식별할 수 없다. 슈퍼키 : 고객번호와 주민번호를 포함한 모든 속성의 집합이 슈퍼키가 된다. -> (주민번호), (주민번호, 이름), (주민번호, 이름, 주소), ... -> (고객번호), (고객번호, 이름), (고객번호, 이름, 주소), ...

My Log

자격증 기록/정보처리기사

[정보처리기사 데이터베이스] #3. 관계형 데이터베이스 모델

My Log 2019. 9. 13. 17:37

1. 관계형 데이터베이스

     가. 개요

            - 개체나 관계를 릴레이션이라는 표로 표현하여 간결하고 보기 편리하며, 다른 데이터베이스로의 변환이 용이하다.

            - 성능이 다소 떨어지는 단점이 있다.

     나. 릴레이션(Relation)의 구조

           1) 튜플(Tuple)

                - 릴레이션의 각 행을 말하며, 파일의 레코드와 같은 의미

                - 튜플의 수 = 카디널리티, 기수, 대응수

           2) 속성(Attribute)

                - 데이터베이스를 구성하는 가장 작은 논리적 단위

                - 파일구조의 데이터 필드에 해당

                - 속성의 수 = 디그리, 차수

           3) 도메인(Domain)

                - 하나의 속성이 가질 수 있는 원자값들의 집합

                - 성별 속성의 도메인은 '남'과 '여'이다.

     다. 릴레이션의 특징

            - 하나의 릴레이션에 포함된 튜플은 모두 상이하다.

            - 튜플 사이에는 순서가 없다.

            - 속성들 간의 순서가 없다.

            - 속성의 명칭은 유일해야 하며, 속성의 값은 원자값만을 저장한다.

2. 키(Key)

      - 키는 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때

        튜플을 서로 구분하는 기준이 되는 속성이다.

     가. 후보키(Candidate Key)

            - 튜플을 유일하게 식별 가능한 속성들의 부분집합

            - 모든 튜플에 대해서 유일성과 최소성을 만족

                * 유일성 : 키 값으로 하나의 튜플만을 유일하게 식별할 수 있는 성질

                * 최소성 : 튜플을 유일하게 식별할 때, 꼭 필요한 속성만으로 구성

     나. 기본키(Primary Key)

            - 후보키 중에서 선택한 메인 키

            - Null 값을 가질 수 없다.

                * Null : 아직 알려지지 않거나 모르는 값

            - 기본키로 정의된 속성의 값은 중복되는 값이 존재할 수 없음

     다. 대체키(Alternative Key, 보조키)

            - 후보키가 둘 이상일 때, 기본키를 제외한 나머지 후보키를 말함

     라. 슈퍼키(Super Key)

            - 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성을 만족시키지 못하는 키

     마. 외래키(Foreign Key)

            - 릴레이션 간 관계를 맺고 있을 때, 참조하는 릴레이션의 기본키와 같은 속성을 외래키라고 함

            - 릴레이션 간 참조 관계를 표현하는데 중요한 도구로 사용

            - 외래키로 지정된 속성은 참조 릴레이션의 기본키와 동일한 도메인을 가진다.

3. 관계대수 및 관계해석

     가. 관계대수

            - 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어

            - 피연산자와 결과값은 릴레이션이다.

            1) 순수 관계 연산자

                 ㄱ. Select(σ) : 원하는 튜플을 구하는 연산

                 ㄴ. Project(π) : 원하는 속성을 추출하는 연산

                 ㄷ. Join(⋈) : 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산

                                          (자연조인일 경우 속성을 중복표시하지 않음)

                                               * 자연조인 : 조인되는 속성명과 도메인이 같은 경우, 속성을 한 번만 표기하는 방법

                 ㄹ. Division(÷)

            2) 일반 집합 연산자

                  - 교차곱을 제외한 나머지 연산자는 속성의 수가 같고, 각 속성의 도메인이 같아야 한다.

                 ㄱ. 합집합(Union) : 튜플의 합집합, 중복되는 튜플은 제거된다.

                                                       카디널리티 : |R∪S| ≤ |R| + |S|

                 ㄴ. 교집합(Intersection) : 튜플의 교집합

                                                                   카디널리티 : |R∩S|  MIN { |R|, |S| }

                 ㄷ. 차집합(Difference) : 두 릴레이션의 차집합

                                                               카디널리티 : |R - S| ≤ |R|

                 ㄹ. 교차곱(Cartesian Product) : 두 릴레이션에 있는 튜플들의 순서쌍을 구하는 연산

                                                                               카디널리티 : |R x S| = |R| x |S|

     나. 관계해석

           - 관계 데이터의 연산을 표현하는 비절차적 언어이다.

           - 원하는 정보가 무엇이라는 것만 정의한다.

           - 튜플 관계해석과 도메인 관계해석이 있다.

           - 질의어로 표현한다.

4. 정규화

     가. 개요

            - 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어가는 과정을 말한다.

            - 하나의 종속성이 하나의 릴레이션에 표현될 수 있도록 분해해가는 과정이다.

            - 정규화가 진행될수록 만족시켜야 할 제약 조건이 늘어난다.

            - 정규화는 데이터베이스의 논리적 설계단계에서 수행한다.

     나. 정규화의 목적

           1) 데이터 구조의 안정성

           2) 효과적인 검색 알고리즘

           3) 속성 간의 중복성을 최소화하여, 이상(Anomaly)의 발생을 방지

                  * 이상(Anomaly) : 데이터들이 불필요하게 중복되어, 릴레이션 조작 시 예기치 못한 현상이 발생하는 것

                                                      여러 종류의 사실들이 하나의 릴레이션에 모두 표현되어 발생

           4) 데이터 삽입 시, 릴레이션을 재구성할 필요성을 줄임

     다. 이상(Anomaly)의 종류

           1) 삽입 이상 : 데이터 삽입 시, 원하지 않는 값들도 함께 삽입되는 현상

           2) 삭제 이상 : 데이터 삭제 시, 의도와 상관없는 값들도 함께 삭제되는 현상

           3) 갱신 이상 : 속성 값을 갱신할 때, 일부 튜플의 정보만이 갱신되어 정보의 모순이 발생하는 현상

     라. 정규화 과정

                  * 부분적 함수 종속 : 기본키가 여러 개의 속성으로 구성되어 있을 때, 일부 속성만으로 결정되는 값이 있는 경우를 말함

                  * 이행적 함수 종속 : A→B, B→C 이면, A→C가 성립되는 경우를 말함

                  * 결정자 : 다른 속성의 값을 결정하는 속성을 결정자라 함

Toplist

최신 우편물

태그