6. 키와 무결성 제약조건 - 2과목 데이터 베이스 구축
목차
속성이란?
RDBMS(관계형 데이터베이스 관리 시스템)에서 속성은 데이터베이스 테이블의 열을 나타냅니다. 각 속성은 해당 열에 저장되는 데이터의 특성이나 속성을 설명합니다.
정보를 설명하는 가장 작은 단위
다른 용어로 열(column) 또는 필드(field)로도 알려져 있습니다.
예를 들어, 사용자 테이블의 경우 "이름", "나이", "성별" 등이 속성이 될 수 있습니다. 각 속성은 해당 속성에 저장되는 데이터의 유형을 결정하고, 데이터의 의미를 설명합니다. 속성은 데이터베이스 테이블의 스키마를 정의하는 데 중요한 역할을 합니다.
속성의 특징
하나의 속성에는 하나의 값만을 가져야 한다.
여러 값이 필요한 경우 별도의 테이블로 분리된다.
- 유형(Type)
- 명칭(Identifier)
- 값(Value)
- 제약 조건(Constraints)
- 의미(Semantics)
- 고유성(Uniqueness)
- 연결성(Connectivity)
- 도메인(Domain)
속성분류
- 기본속성
- 엔티티의 기본적인 특징을 나타내는 속성으로, 더 이상 분해할 수 없는 최소한의 데이터를 포함합니다
- 업무로부터 추출한 모든 속성
- 설계속성 : 특정 설계 요구사항을 충족하기 위해 추가된 속성입니다.
- 예를 들어, 기록의 생성일 또는 마지막 업데이트일 등이 설계 속성에 해당합니다.
- 코드성 데이터 릴레이션 식별용 일련 번호
- 파생속성 : 다른 속성에 의해 계산되거나 유도되는 속성입니다.
- 예를 들어, 나이는 출생일을 기반으로 자동으로 계산할 수 있습니다.
- 다른 속성에 영향을 받음
- 계산값, 합계, 재고
세부의미에 따른 분류
- 단순 속성 : 하나의 값을 가지는 속성입니다. 예를 들어, 나이 또는 성별과 같은 속성은 단순 속성입니다.
- 복합 속성 : 두 개 이상의 하위 속성으로 구성된 속성입니다. 예를 들어, 주소 속성은 번지, 도시, 우편번호 등 여러 하위 속성으로 구성될 수 있습니다.
구성 방식에 따른 분류
- PK 속성 : 관계형 데이터베이스에서 주 키(primary key)로 사용되는 속성입니다.
- 주문 목록 페이지의 주문 번호
- FK 속성 : 관계형 데이터베이스에서 외래 키(foreign key)로 사용되는 속성으로, 다른 테이블의 기본 키를 참조합니다.
- 주문 목록 페이지의 주문번호를 상세페이지에서는 참조한다.
- 일반 속성 : 일반적인 데이터를 저장하는 속성으로, 주 키나 외래 키가 아닌 일반적인 속성입니다.
도메인
속성이 허용하는 값의 집합을 정의하는 데 사용됩니다. 즉, 속성의 유효한 데이터 형식을 지정합니다.
속성에서 표현할 수 있는 값의 범위
속성명 부여 원칙
패스하셔도 좋고 빠르게 읽고 가셔도 좋습니다.
- 속성명은 명확하고 간결하며 의미 있는 이름으로 지정해야 합니다.
- 또한, 속성명은 표준 명명 규칙을 따라야 하며, 도메인과 일관된 명명 패턴을 사용하는 것이 좋습니다.
- 약어 사용 금지 : 외계인 코드, 스파게티 코드, 레거시 시스템 등을 동료검토, 워크쓰루, 인스팩션을 통한 리팩토링을 하여 클린코드를 만들어야함. 의존성 최소화
키(key)란?
키(key)는 데이터베이스에서 튜플(tuple)을 식별하거나 검색하는 데 사용되는 속성의 집합입니다. 데이터베이스 모델링에서 키는 튜플을 고유하게 식별하는 데 사용되며, 데이터의 정확성과 일관성을 유지하는 데 중요한 역할을 합니다.
유일성과 최소성
먼저, 유일성과 최소성에 대한 개념을 알아야합니다.
유일성(Uniqueness)은 데이터베이스에서 특정 값이 중복되지 않는 것을 의미합니다.
예를 들어, 기본 키는 각 행을 고유하게 식별하기 위해 사용되며, 중복될 수 없는 값을 가져야 합니다.
최소성(Minimality)은 키로 선택된 속성의 최소한의 수를 의미합니다.
즉, 키로 선택된 속성들의 조합이 가능한 한 최소한의 크기여야 합니다. 예를 들어, 슈퍼키는 가능한 한 최소한의 속성으로 구성되어야 하며, 불필요한 속성이 포함되어서는 안 됩니다.
키의 종류
시험에 매우 자주 출제되며, 실무에서도 중요한 내용이니 꼭 확인하고 암기하셔아합니다.
종류 | 설명 | 예시 |
후보키 (Candidate Key) |
튜플을 유일하게 식별할 수 있는 속성 또는 속성의 집합 유일성+최소성 |
주민등록번호, 이메일 주소 |
기본키 (Primary Key) |
후보키 중에서 특별히 선택된 하나의 키 후보키 중에서 가장 적절한 키 |
사용자 ID, 주문 번호 |
대체키 (Alternate Key) |
후보키 중에서 주 키가 아닌 나머지 후보키 기본키로 뽑히지 않은 나머지 후보키 |
사원 번호, 전화번호 |
슈퍼키 (Super Key) |
튜플을 유일하게 식별할 수 있는 속성들의 집합 나를 특정할 수 있는 모두, 조합하여 사용할 수 있음 유일성 |
(주민등록번호, 이름), (주문 번호, 제품 코드) |
외래키 (Foreign Key) |
다른 테이블의 주 키를 참조하는 키 다른키에서 참조하는 키 - 기본키 |
주문 테이블의 고객 ID |
데이터베이스 무결성이란?
데이터베이스 무결성(Integrity)은 데이터베이스의 데이터가 정확하고 일관되며 유효한 상태를 유지하는 것을 의미합니다. 즉, 데이터베이스의 구조와 제약 조건이 지켜지면서 데이터가 올바르게 저장되고 유지되어야 합니다.
데이터베이스 무결성 종류
무결성 | 설명 |
개체 무결성 (Entity Integrity) |
각 행은 기본 키 속성이 NULL이 아니고 중복되지 않아야 함. 중복되지 않은 고유한 값인 기본키 |
참조 무결성 (Referential Integrity) |
외래 키 값은 참조하는 테이블의 기본 키 값과 일치하거나 NULL이어야 함 유효하거나 Null restrict : 문제의 연산을 거부, 삭제를 못하게 함. casacade : 참조된 튜플 삭제시, 참조 튜플도 함께 삭제 |
도메인 무결성 (Domain Integrity) |
각 속성 값은 정의된 도메인에서 유효한 값을 가져야 함 도메인 내의 값만 가져야한다. |
고유 무결성 (Unique Integrity) |
테이블의 특정 속성 또는 속성의 조합이 중복되지 않아야 함. UNIQUE 명령 |
키 무결성 (Key Integrity) |
테이블의 키는 모든 행에서 유일하고 NULL이 아니어야 함 적어도 하나의 키를 가져야함 |
릴레이션 무결성 (Relational Integrity) |
데이터베이스에 정의된 모든 규칙과 제약 조건을 준수해야 함 삽입, 삭제, 갱신 등의 연산은 릴레이션의 무결성을 해치지 않도록 수행되어야 함 |
'정보처리기사' 카테고리의 다른 글
8. SQL의 기본기 - 데이터베이스구축 (0) | 2024.04.02 |
---|---|
7. 물리데이터모델 품질 검토 & 분산 데이터 베이스 - 2과목 데이터 베이스 구축 (0) | 2024.04.02 |
5. 관계 데이터 모델 - 2과목 데이터 베이스 구축 (0) | 2024.04.01 |
4. 데이터 베이스 물리속성 설계 - 2과목 데이터 베이스 구축 (0) | 2024.03.31 |
[정처기실기] 3. 물리 데이터베이스 설계 (0) | 2024.03.31 |
댓글