1. 속성(Attribute)
속성(Attribute)은 데이터베이스에서 **개체(Entity)**가 가지는 특성을 나타내는 요소이다. 쉽게 말해, 개체의 속성은 해당 개체를 설명하는 데이터 항목이다.
특징
- 하나의 개체는 여러 개의 속성을 가질 수 있다.
- 속성은 각 개체의 고유한 정보를 포함할 수 있다.
- 속성 값은 원자성을 가져야 한다. (즉, 더 이상 나눌 수 없는 단위여야 한다.)
유형
- 기본 속성(단순 속성, Simple Attribute)
- 더 이상 나눌 수 없는 기본적인 속성
- 예: 학생 개체의 "이름", "학번"
- 복합 속성(Composite Attribute)
- 여러 개의 하위 속성으로 나눌 수 있는 속성
- 예: "주소" → (도시, 도로명, 우편번호)
- 다중값 속성(Multivalued Attribute)
- 하나의 개체가 여러 개의 값을 가질 수 있는 속성
- 예: "전화번호" (하나의 개체가 여러 개의 전화번호를 가질 수 있음)
- 유도 속성(Derived Attribute)
- 다른 속성을 이용하여 계산할 수 있는 속성
- 예: "생년월일"을 통해 "나이"를 유도
예시
학생ID 이름 전화번호 주소
| S001 | 홍길동 | 010-1234-5678 | 서울특별시 강남구 |
| S002 | 김철수 | 010-9876-5432 | 부산광역시 해운대구 |
2. 관계(Relationship)
관계(Relationship)는 개체(Entity) 간의 연관성을 의미한다. 즉, 서로 관련된 개체를 연결하는 개념이다.
특징
- 관계는 두 개 이상의 개체 간의 연관성을 표현한다.
- 관계의 강도에 따라 1:1, 1:N, N:M 관계로 나뉜다.
- ERD(Entity-Relationship Diagram)에서 **마름모(◇)**로 표현된다.
유형
- 일대일(1:1, One-to-One) 관계
- 하나의 개체가 다른 하나의 개체와만 연결됨
- 예: "국가 - 대통령" (한 나라에는 한 명의 대통령만 존재)
- 일대다(1:N, One-to-Many) 관계
- 하나의 개체가 여러 개의 개체와 연결될 수 있음
- 예: "교수 - 학생" (한 교수는 여러 학생을 지도할 수 있음)
- 다대다(N:M, Many-to-Many) 관계
- 여러 개의 개체가 여러 개의 개체와 연결될 수 있음
- 예: "학생 - 수업" (한 학생은 여러 수업을 들을 수 있고, 한 수업을 여러 학생이 들을 수 있음)
예시
학생ID 학생이름 과목코드 과목명
| S001 | 홍길동 | CS101 | 데이터베이스 |
| S002 | 김철수 | CS101 | 데이터베이스 |
| S001 | 홍길동 | CS102 | 운영체제 |
3. 식별자(Identifier, Key)
식별자는 데이터베이스에서 **각 개체를 고유하게 구별할 수 있도록 하는 속성(또는 속성의 집합)**을 의미한다.
특징
- 식별자는 개체의 유일성을 보장해야 한다.
- 기본 키(Primary Key)로 설정된 속성은 NULL 값을 가질 수 없다.
- 식별자는 단일 속성 또는 복합 속성으로 구성될 수 있다.
유형
- 기본 키(Primary Key, PK)
- 테이블 내에서 각 행을 고유하게 식별하는 속성
- NULL 값을 가질 수 없으며, 중복을 허용하지 않음
- 예: "학번", "주민등록번호"
- 대체 키(Alternate Key)
- 기본 키가 될 수 있는 후보 키 중에서 선택되지 않은 키
- 예: 학번과 주민등록번호가 모두 유일한 값이라면, 학번을 기본 키로 선택하고 주민등록번호는 대체 키가 될 수 있음
- 외래 키(Foreign Key, FK)
- 다른 테이블의 기본 키를 참조하는 속성
- 부모 테이블과 자식 테이블 간의 관계를 설정할 때 사용
- 예: "학생 테이블"에서 "수강 테이블"의 "학번"을 참조하는 경우
- 슈퍼 키(Super Key)
- 유일성을 보장하는 속성의 집합으로, 기본 키를 포함할 수 있음
- 예: (학번, 이름), (주민등록번호) 모두 유일성을 보장할 수 있는 경우 슈퍼 키
예시
학번(PK) 이름 주민등록번호
| 2023001 | 홍길동 | 900101-1234567 |
| 2023002 | 김철수 | 880202-2345678 |
이 경우,
- "학번"이 기본 키(Primary Key)
- "주민등록번호"는 대체 키(Alternate Key)
- 다른 테이블에서 "학번"을 참조하면 **외래 키(Foreign Key)**가 됨
실전 예제문제
문제 1. 다음 중 속성(Attribute)에 대한 설명으로 가장 적절한 것은?
① 속성은 개체를 설명하는 데이터 항목이다.
② 속성은 항상 여러 개의 값을 가져야 한다.
③ 모든 속성은 기본 속성이어야 한다.
④ 속성은 개체 간의 관계를 정의하는 역할을 한다.
✅ 정답: ① 속성은 개체를 설명하는 데이터 항목이다.
문제 2. 관계(Relationship)에 대한 설명으로 옳지 않은 것은?
① 관계는 두 개 이상의 개체를 연결하는 역할을 한다.
② 1:N 관계에서는 한 개체가 여러 개의 개체와 연결될 수 있다.
③ 모든 관계는 반드시 기본 키를 포함해야 한다.
④ N:M 관계는 관계 테이블을 사용하여 표현할 수 있다.
✅ 정답: ③ 모든 관계는 반드시 기본 키를 포함해야 한다. (관계 자체에는 반드시 기본 키가 필요하지 않음)
문제 3. 기본 키(Primary Key)에 대한 설명으로 틀린 것은?
① 기본 키는 테이블에서 각 행을 유일하게 식별한다.
② 기본 키는 NULL 값을 가질 수 있다.
③ 하나의 테이블에는 하나의 기본 키만 존재할 수 있다.
④ 기본 키는 중복된 값을 가질 수 없다.
✅ 정답: ② 기본 키는 NULL 값을 가질 수 있다. (❌기본 키는 NULL 값을 가질 수 없음)
'SQLD' 카테고리의 다른 글
| SQLD) 제1장 데이터 모델링 요약 정리 (0) | 2025.02.17 |
|---|