[정처기 필기] 「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 기본서 (길벗알앤디)
'💠기타 > 정보처리기사' 카테고리의 다른 글
[정처기 필기] 「3」 | 논리 데이터베이스 설계 - (1.4) 정규화, 반정규화, 시스템 카탈로그 (1) | 2024.02.08 |
---|---|
[정처기 필기] 「3」 | 논리 데이터베이스 설계 - (1.3) 관계대수 및 관계해석 (1) | 2024.02.05 |
[정처기 필기] 「3」 | 논리 데이터베이스 설계 - (1.1) 데이터베이스 설계, 데이터 모델의 개념, E-R 모델 (2) | 2024.02.04 |
[정처기 필기] 「2」 | 인터페이스 구현 - (5.2) 인터페이스 구현, 보안, 구현 검증 (0) | 2024.02.01 |
[정처기 필기] 「2」 | 인터페이스 구현 - (5.1) 공통 기능과 데이터 인터페이스, 연계 위한 인터페이스 기능, 인터페이스 데이터 표준 (0) | 2024.02.01 |