[정처기 필기] 「3」 | 논리 데이터베이스 설계 - (1.2) 관계형 데이터베이스의 구조, 제약 조건 - 키, 무결성

728x90

[정처기 필기] 3」 | 논리 데이터베이스 설계 - (1.2) 관계형 데이터베이스의 구조, 제약 조건 - 키, 무결성

「1」 소프트웨어 설계

「2」 소프트웨어 개발

> 「3」 데이터베이스 구축

> 논리 데이터베이스 설계, 물리 데이터베이스 설계, SQL 응용, SQL 활용, 데이터 전환

「4」  프로그래밍 언어 활용

「5」  정보시스템 구축 관리

 

1 데이터베이스 설계

2 데이터 모델의 개념

3 E-R 모델

> 4 관계형 데이터베이스의 구조

> 5 관계형 데이터베이스의 제약 조건 - 키(Key)

> 6 관계형 데이터베이스의 제약 조건 - 무결성

7 관계대수 및 관계해석

8 정규화(Normalization)

9 반정규화(Denormalization)

10 시스템 카탈로그

3. 관계형 데이터베이스의 구조

관계형 데이터베이스의 개요

 

- IMB에 근무하던 코드(E. F. Codd)에 의해 제안

- 개체(Entity), 관계(Relationship)를 릴레이션(Relation)이라는 표(Table)로 표현

- 개체 릴레이션, 관계 릴레이션으로 구분

- 간결, 보기 편리하며 다른 데이터베이스로 변환 용이

- 성능이 다소 떨어짐

 

관계형 데이터베이스의 Relation 구조

 

릴레이션은 데이터들표 형태로 표현한 것, 구조를 나타내는 릴레이션 스키마실제 값릴레이션 인스턴스로 구성

 

    속성      
         
    학번 이름 학년 신장 학과 릴레이션
스키마
릴레이션
(1개)
튜플 19001 김예소 2 170 CD 릴레이션
인스턴스
20002 고강민 1 169 CD
19012 이향기 2 180 ID
17032 김동준 4 174 ED
                 
        학년의
도메인
         

 

튜플(Tuple)

: 릴레이션을 구성하는 각각의 행

: 속성의 모임으로 구성

: 파일 구조에서 레코드와 같은 의미

: 튜플의 수, == 카디널리티(Cardinality), 기수, 대응수

속성(Attribute)

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

: 파일 구조상의 데이터 항목, 데이터 필드에 해당

: 속성의 수, == 디그리(Degree), 차수

도메인(Domain)

: 하나의 속성이 취할 수 있는 같은 타입의 원자(Atomic) 값들의 집합

: 실제 속성 값이 나타낼 때, 그 값의 합법 여부를 검사하는데 이용

 

릴레이션의 특징

 

- 릴레이션에 포함된 튜플들은 모두 다름

- 한 릴레이션에 포함된 튜플 사이에는 순서 없음

- 튜플들의 삽입, 삭제 등으로 릴레이션시간에 따라 변함

- 릴레이션 스키마를 구성하는 속성들순서는 중요하지 않음

- 속성의 명칭유일해야 하지만, 속성값에는 동일한 값이 있을 수도 있음

- 튜플을 식별하기 위해 속성들의 부분집합키(Key)로 설정

- 속성의 값은 더이상 쪼갤 수 없는 원자값만을 저장

4. 관계형 데이터베이스의 제약 조건 - 키(Key)

키(Key)의 개념 및 종류

 

데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 튜플들을 서로 구분할 수 있는 기준이 되는 속성

 

- 후보키, 기본키, 대체키, 슈퍼키, 외래키

 

후보키(Candidate Key)

 

튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합, 기본키로 사용할 수 있는 속성들을 말함

 

- 모든 릴레이션에는 반드시 하나 이상의 후보키가 존재

- 후보키는 모든 튜플에 대하여 유일성, 최소성 만족시켜야함

 

유일성(Unique)

: 하나의 키 값으로 하나의 튜플만을 유일하게 식별해야 함

최소성(Minimality)

: 모든 레코드들을 유일하게 식별하는 데 꼭 필요한 속성으로만 구성되어야 함

 

기본키(Primary Key)

 

후보키 중 특별히 선정주키(Main Key)중복된 값 가질 수 없음

 

- 한 릴레이션에서 특정 튜플유일하게 구별할 수 있는 속성

- 후보키의 성질인 유일성, 최소성 가지며 반드시 필요한 키

- 기본키로 설정된 속성에 NULL값이 있으면 안 됨

 

대체키(Alternate Key)

 

후보키가 두 개 이상일 때, 기본키를 제외한 나머지 후보키, == 보조키

 

슈퍼키(Super Key)

 

한 릴레이션 내에 있는 속성들의 집합으로 구성된 키, 슈퍼키로 구성된 속성의 집합모든 튜플의 값다름

 

- 유일성은 만족시키지만, 집합이므로 최소성은 만족시키지 못함

 

외래키(Foreign Key)

 

다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합

 

- 참조되는 릴레이션의 기본키와 대응되어, 릴레이션 간 참조관계를 표현하는 도구

- 중복이 허용, 유일성과 최소성 가질 수 없음

- 한 릴레이션에 속한 A와 참조 릴레이션의 기본키인 B가 동일한 도메인에서 정의되었을 때, A를 외래키라 함

- 참조 릴레이션의 기본키에 없는 값입력할 수 없음

5. 관계형 데이터베이스의 제약 조건 - 무결성

무결성(Integrity)의 개념 / 종류

 

데이터베이스에 저장된 데이터 값현실 세계의 실제값일치하는 정확성

 

- 무결성 제약 조건이란 데이터의 정확성을 보장하기 위해 부정확한 자료가 저장되는 것을 방지하는 제약 조건

- 개체 무결성, 도메인 무결성, 참조 무결성, 사용자 정의 무결성

 

개체 무결성(Entity Integrity, 실체 무결성)

 

기본 테이블의 기본키를 구성하는 어떤 속성도 NULL 값, 중복값 가질 수 없다는 규정

 

도메인 무결성(Domain Integrity, 영역 무결성)

 

주어진 속성 값이 정의된 도메인에 속한 값이어야 한다는 규정

 

참조 무결성(Referential Integrity)

 

외래키 값NULL이거나 참조 릴레이션의 기본키 값동일해야 함, 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다는 규정

 

- 외래키와 참조하려는 테이블의 기본키도메인과 속성 개수가 같아야

 

사용자 정의 무결성(User-Defined Integrity)

 

속성값들이 사용자가 정의한 제약 조건에 만족해야 한다는 규정

 

데이터 무결성 강화

 

데이터 무결성은 데이터 품질에 직접적인 영향을 미치므로, 적절한 무결성정의하고 강화해야 함

 

- 프로그램이 완성되고 데이터 저장된 상태에서 무결성 정의할 경우 비용이 많이 듦, 데이터베이스 구축 과정에서 정의

- 애플리케이션, 데이터베이스 트리거, 제약 조건을 이용하여 강화

 

애플리케이션

: 데이터 생성, 수정, 삭제 시 무결성 조건을 검증하는 코드를 데이터를 조작하는 프로그램 내 추가

: 코드로 복잡한 규칙 등 검토하는 무결성 검사는 데이터베이스에서 어려우므로 애플리케이션 내에서 처리

: 사용자 정의 같은 복잡한 무결성 조건 구현 가능

: 소스 코드에 분산되어 관리 힘들고, 개별적 시행으로 적정성 검토가 어려움

데이터베이스 트리거

: 트리거 이벤트에 무결성 조건을 실행하는 절차형 SQL 추가

: 통합 관리 가능, 복잡한 요구 조건의 구현 가능

: 운영 중 변경 어렵고, 사용상 주의 필요

제약 조건

: 데이터베이스제약 조건을 설정하여 무결성 유지

: 통합 관리 가능, 간단한 선언으로 구현 가능, 변경 용이, 오류 데이터 발생 방지

: 복잡한 제약 조건 구현과 예외적 처리 불가능

 

 

 

 

 

 

 

 

 

출처 | <시나공> 정보처리기사 필기 2024 기본서 (길벗알앤디)

 

728x90