1. 속성(Attribute)

속성(Attribute)은 데이터베이스에서 **개체(Entity)**가 가지는 특성을 나타내는 요소이다. 쉽게 말해, 개체의 속성은 해당 개체를 설명하는 데이터 항목이다.

특징

  • 하나의 개체는 여러 개의 속성을 가질 수 있다.
  • 속성은 각 개체의 고유한 정보를 포함할 수 있다.
  • 속성 값은 원자성을 가져야 한다. (즉, 더 이상 나눌 수 없는 단위여야 한다.)

유형

  1. 기본 속성(단순 속성, Simple Attribute)
    • 더 이상 나눌 수 없는 기본적인 속성
    • 예: 학생 개체의 "이름", "학번"
  2. 복합 속성(Composite Attribute)
    • 여러 개의 하위 속성으로 나눌 수 있는 속성
    • 예: "주소" → (도시, 도로명, 우편번호)
  3. 다중값 속성(Multivalued Attribute)
    • 하나의 개체가 여러 개의 값을 가질 수 있는 속성
    • 예: "전화번호" (하나의 개체가 여러 개의 전화번호를 가질 수 있음)
  4. 유도 속성(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:1, One-to-One) 관계
    • 하나의 개체가 다른 하나의 개체와만 연결됨
    • 예: "국가 - 대통령" (한 나라에는 한 명의 대통령만 존재)
  2. 일대다(1:N, One-to-Many) 관계
    • 하나의 개체가 여러 개의 개체와 연결될 수 있음
    • 예: "교수 - 학생" (한 교수는 여러 학생을 지도할 수 있음)
  3. 다대다(N:M, Many-to-Many) 관계
    • 여러 개의 개체가 여러 개의 개체와 연결될 수 있음
    • 예: "학생 - 수업" (한 학생은 여러 수업을 들을 수 있고, 한 수업을 여러 학생이 들을 수 있음)

예시

학생ID 학생이름 과목코드 과목명

S001 홍길동 CS101 데이터베이스
S002 김철수 CS101 데이터베이스
S001 홍길동 CS102 운영체제

 


3. 식별자(Identifier, Key)

식별자는 데이터베이스에서 **각 개체를 고유하게 구별할 수 있도록 하는 속성(또는 속성의 집합)**을 의미한다.

특징

  • 식별자는 개체의 유일성을 보장해야 한다.
  • 기본 키(Primary Key)로 설정된 속성은 NULL 값을 가질 수 없다.
  • 식별자는 단일 속성 또는 복합 속성으로 구성될 수 있다.

유형

  1. 기본 키(Primary Key, PK)
    • 테이블 내에서 각 행을 고유하게 식별하는 속성
    • NULL 값을 가질 수 없으며, 중복을 허용하지 않음
    • 예: "학번", "주민등록번호"
  2. 대체 키(Alternate Key)
    • 기본 키가 될 수 있는 후보 키 중에서 선택되지 않은 키
    • 예: 학번과 주민등록번호가 모두 유일한 값이라면, 학번을 기본 키로 선택하고 주민등록번호는 대체 키가 될 수 있음
  3. 외래 키(Foreign Key, FK)
    • 다른 테이블의 기본 키를 참조하는 속성
    • 부모 테이블과 자식 테이블 간의 관계를 설정할 때 사용
    • 예: "학생 테이블"에서 "수강 테이블"의 "학번"을 참조하는 경우
  4. 슈퍼 키(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

 

1. 데이터 모델링 개념

  • 정의: 데이터베이스를 구축하기 전에 데이터의 구조와 관계를 설계하는 과정
  • 목적: 데이터 중복 최소화, 무결성 유지, 효율적 데이터 관리
  • 예시:
    • 학생과 강의 데이터를 관리할 때, ‘학생 테이블’과 ‘강의 테이블’을 분리하여 설계

2. 데이터 모델링의 3가지 관점

  1. 데이터 관점
    • 개체(Entity), 속성(Attribute), 관계(Relationship) 정의
    • 예시:
      • 학생(학번, 이름, 전공) ↔ 강의(강의코드, 강의명) ↔ 수강(학번, 강의코드)
  2. 프로세스 관점
    • 데이터의 흐름과 CRUD 연산 정의 (DFD 활용)
    • 예시:
      • 학생이 ‘수강 신청’을 하면, ‘수강 테이블’에 데이터가 저장됨
  3. 사용자 관점
    • 데이터 활용 방식, 권한, UI/UX 설계 고려
    • 예시:
      • 교수는 모든 학생의 수강 정보를 조회 가능, 학생은 자신의 정보만 조회 가능

3. 데이터 모델링 특징

  • 추상화: 현실 세계를 논리적 구조로 변환
  • 단순화: 복잡한 데이터 관계를 쉽게 표현
  • 명확성: 데이터 구조를 이해하기 쉽게 정리
  • 예시:
    • 학생이 강의를 듣는 관계를 단순한 테이블 구조(학생-수강-강의)로 표현

4. 데이터 모델링의 중요성

  • 데이터 중복 최소화 → 저장 공간 절약
  • 데이터 무결성 유지 → 오류 및 불일치 방지
  • 데이터 일관성 유지 → 시스템 간 원활한 연계
  • 예시:
    • 학생의 정보(이름, 학번)를 ‘학생 테이블’에서만 관리하여 중복 입력 방지
    •  

 

5. 데이터의 독립성

  • 논리적 독립성: 논리적 구조 변경이 물리적 구조에 영향 없음
  • 물리적 독립성: 저장 구조 변경이 논리적 구조에 영향 없음
  • 예시:
    • 논리적 독립성: 새로운 속성(이메일) 추가해도 기존 애플리케이션 영향 없음
    • 물리적 독립성: HDD에서 SSD로 변경해도 데이터 구조 변경 없음

 


6. 데이터 모델링의 3단계

  1. 개념적 모델링
    • ERD(Entity Relationship Diagram) 작성
    • 개체, 관계, 속성 정의
    • 예시:
      • 학생 ↔ 강의 ↔ 수강 관계를 ERD로 표현
  2. 논리적 모델링
    • 관계형 데이터베이스 설계
    • 정규화 진행 (1NF, 2NF, 3NF)
    • 예시:
      • ‘강의명’을 ‘강의 테이블’에만 저장하여 데이터 중복 제거
  3. 물리적 모델링
    • 실제 데이터베이스 구축
    • 인덱스, 테이블스페이스, 성능 최적화 고려
    • 예시:
      • ‘학생 테이블’의 ‘학번’에 인덱스를 생성하여 조회 속도 개선

7. ERD(Entity Relationship Diagram) 개념

  • 개체(Entity): 데이터베이스에서 관리할 대상 (예: 학생, 강의)
  • 관계(Relationship): 개체 간의 연관성 (예: 학생 ↔ 수강 ↔ 강의)
  • 속성(Attribute): 개체가 가지는 특징 (예: 학생 → 학번, 이름, 학년)
  • 예시:
    • ERD에서 학생(학번, 이름)수강(학번, 강의코드)강의(강의코드, 강의명)
    •  

 

8. 데이터 모델링의 주요 기법

  1. ER 모델(Entity-Relationship Model)
    • 개체(Entity), 관계(Relationship), 속성(Attribute) 중심
    • 예시:
      • ‘학생 - 수강 - 강의’ 관계를 ERD로 표현
  2. 정규화(Normalization)
    • 1NF: 반복 속성 제거
    • 2NF: 부분적 함수 종속 제거
    • 3NF: 이행적 함수 종속 제거
    • 예시:
      • ‘학생’ 테이블에서 ‘강의명’을 제거하고 ‘강의’ 테이블로 분리
  3. 반정규화(Denormalization)
    • 성능 개선을 위해 일부 데이터 중복 허용
    • 예시:
      • ‘학생 테이블’과 ‘강의 테이블’을 조인 없이 조회 가능하도록 데이터 중복 저장

SQLD 제1장 데이터 모델링 – 항목별 실전 예제 문제

1. 데이터 모델링 개념

Q1. 데이터 모델링의 주요 목적이 아닌 것은?
① 데이터 중복 최소화
② 데이터 무결성 유지
③ 데이터 검색 성능 최적화
④ 프로그래밍 언어 선택

정답: ④ (데이터 모델링은 프로그래밍 언어와 무관함)


2. 데이터 모델링의 3가지 관점

Q2. 데이터 모델링의 3가지 관점에 대한 설명 중 틀린 것은?
① 데이터 관점에서는 개체와 속성을 정의하고 관계를 모델링한다.
② 프로세스 관점에서는 CRUD 연산을 분석하고, 데이터의 흐름을 정의한다.
③ 사용자 관점에서는 데이터 정규화를 수행하여 무결성을 유지한다.
④ 데이터 모델링에서는 데이터 관점, 프로세스 관점, 사용자 관점을 모두 고려해야 한다.

정답: ③ (사용자 관점은 데이터 정규화보다 데이터 활용 방식 정의가 주요 목적)


3. 데이터 모델링 특징

Q3. 다음 중 데이터 모델링의 특징이 아닌 것은?
① 현실 세계를 논리적 구조로 변환하는 추상화 과정이다.
② 데이터의 구조를 단순화하여 표현한다.
③ 데이터 모델링은 데이터베이스 구축 후에도 수정이 불가능하다.
④ 명확한 데이터 구조를 제공하여 이해하기 쉽게 만든다.

정답: ③ (데이터 모델링은 구축 후에도 수정이 가능함)


4. 데이터 모델링의 중요성

Q4. 데이터 모델링이 중요한 이유로 적절하지 않은 것은?
① 데이터 중복을 최소화하여 저장 공간을 절약할 수 있다.
② 데이터 무결성을 유지하여 오류와 불일치를 방지할 수 있다.
③ 데이터 구조를 자유롭게 변경하여 일관성을 무시할 수 있다.
④ 데이터 일관성을 유지하여 시스템 간 원활한 연계를 지원한다.

정답: ③ (데이터 구조 변경 시 일관성을 유지해야 함)


5. 데이터의 독립성

Q5. 다음 중 데이터의 독립성에 대한 설명으로 틀린 것은?
① 논리적 독립성이란 논리적 구조를 변경해도 응용 프로그램에 영향을 주지 않는 것이다.
② 물리적 독립성이란 저장 장치나 방식이 변경되어도 논리적 구조에 영향을 주지 않는 것이다.
③ 데이터 독립성이 높을수록 데이터베이스 관리가 어려워진다.
④ 데이터 독립성을 유지하면 유지보수 비용을 절감할 수 있다.

정답: ③ (데이터 독립성이 높으면 데이터베이스 관리가 더 쉬워짐)


6. 데이터 모델링의 3단계

Q6. 데이터 모델링 단계별 특징으로 옳지 않은 것은?
① 개념적 모델링에서는 개체, 관계, 속성을 정의한다.
② 논리적 모델링에서는 데이터베이스의 논리적 구조를 설계한다.
③ 물리적 모델링에서는 테이블을 설계하고 성능 최적화를 고려한다.
④ 논리적 모델링과 물리적 모델링은 같은 단계로 간주된다.

정답: ④ (논리적 모델링과 물리적 모델링은 서로 다른 단계)


7. ERD(Entity Relationship Diagram)

Q7. 다음 중 ERD(Entity Relationship Diagram)에 대한 설명으로 틀린 것은?
① 개체(Entity)는 관리하고자 하는 데이터의 대상이다.
② 관계(Relationship)는 개체 간의 연관성을 의미한다.
③ 속성(Attribute)은 개체가 가지는 특징을 나타낸다.
④ ERD는 물리적 데이터베이스 구축을 위한 직접적인 SQL 문을 포함한다.

정답: ④ (ERD는 개념적 모델링 도구이며 직접적인 SQL을 포함하지 않음)

 

 

chat gpt와 함께하는 즐거운 시간!

'SQLD' 카테고리의 다른 글

SQLD) 제1장 데이터 모델링 요약 정리 2  (0) 2025.02.18

+ Recent posts