먼지 쌓인 키보드

SQLD 요약정리 및 문제 (3회차) 본문

먼지같은 일상/SQLD 공부(feat.GPT)

SQLD 요약정리 및 문제 (3회차)

Under_Desk 2024. 9. 1. 23:05
반응형

(해당 글은  GPT-4o로 작성되어 사용시 참고바랍니다.)

3회차: 관계(Relationship)와 식별자(Identifier)

이번 회차에서는 엔터티 간의 관계식별자에 대해 학습합니다.

1. 관계(Relationship)

관계는 두 개 이상의 엔터티(Entity) 간의 연관성을 나타내며, 데이터베이스 설계에서 중요한 역할을 합니다. 관계를 정의함으로써 데이터베이스 내에서 엔터티들이 어떻게 연결되고 상호작용하는지 알 수 있습니다.

1.1 관계의 종류

  1. 1:1 관계 (One-to-One)
    • 한 엔터티가 다른 엔터티와 1:1로 연결됩니다.
    • 예시: 사람(Person) 엔터티와 주민등록증(ID Card) 엔터티 간의 관계. 각 사람은 하나의 주민등록증을 가지며, 각 주민등록증은 한 사람에게만 발급됩니다.
  2. 1관계 (One-to-Many)
    • 한 엔터티가 여러 개의 다른 엔터티와 연결됩니다.
    • 예시: 교수(Professor) 엔터티와 강의(Course) 엔터티 간의 관계. 한 교수는 여러 강의를 담당할 수 있지만, 각 강의는 한 교수만 담당합니다.
  3. N관계 (Many-to-Many)
    • 여러 엔터티가 여러 개의 다른 엔터티와 연결됩니다.
    • 예시: 학생(Student) 엔터티와 강의(Course) 엔터티 간의 관계. 한 학생은 여러 강의를 수강할 수 있고, 한 강의에 여러 학생이 수강할 수 있습니다.
    • 참고: 실제 데이터베이스에서는 N관계를 구현할 때, 이를 해소하기 위해 교차 테이블(Join Table)을 사용합니다.

2. 식별자(Identifier)

식별자는 엔터티 내에서 각 개체를 고유하게 식별할 수 있는 속성을 의미합니다. 이를 통해 데이터베이스에서 특정 데이터를 정확하게 찾고 관리할 수 있습니다.

2.1 기본키(Primary Key)

  • **기본키(Primary Key)**는 엔터티 내에서 각 레코드를 고유하게 식별하는 데 사용되는 하나 이상의 속성입니다. 기본키는 NULL 값을 가질 수 없으며, 각 레코드는 기본키에 의해 유일하게 식별됩니다.
  • 예시: 학생(Student) 엔터티에서 학번(Student ID)이 기본키가 될 수 있습니다.

2.2 외래키(Foreign Key)

  • **외래키(Foreign Key)**는 한 엔터티에서 다른 엔터티를 참조하는 속성을 의미합니다. 외래키는 두 엔터티 간의 관계를 나타내며, 참조 무결성을 유지하는 데 중요한 역할을 합니다.
  • 예시: 수강(Enrollment) 엔터티에서 학생(Student) 엔터티를 참조하는 학번(Student ID)이 외래키가 될 수 있습니다.

3. ERD에서 관계와 식별자 표현

  • 관계(Relationship): ERD에서 다이아몬드 형태로 표현됩니다.
  • 기본키(Primary Key): 일반적으로 ERD에서 속성 이름 앞에 "PK"로 표시됩니다.
  • 외래키(Foreign Key): 외래키는 "FK"로 표시되며, 이를 통해 다른 엔터티와의 관계를 나타냅니다.

 

 

 

 

 

-------------------------------------------------

과제

  1. ERD 확장 실습:
    • 이전 회차에서 작성한 ERD에 수강(Enrollment) 엔터티를 추가하고, 학생(Student)과 강의(Course) 간의 N관계를 나타내는 교차 테이블로 구성해보세요.
    • 각 엔터티에 적절한 기본키와 외래키를 지정해보세요.
  2. 관계 정의 연습:
    • 다음 요구사항에 따라 관계를 정의해보세요.
      • 하나의 회사(Company)는 여러 부서(Department)를 가지고 있습니다.
      • 각 부서는 여러 직원(Employee)을 관리합니다.
      • 각 직원은 하나의 회사에만 소속됩니다.

과제 답 및 해설

1. ERD 확장 실습

  • ERD 구성:
    • 학생(Student) 엔터티:
      • 기본키: 학번(Student ID)
    • 강의(Course) 엔터티:
      • 기본키: 강의번호(Course ID)
    • 수강(Enrollment) 엔터티 (N관계를 나타내는 교차 테이블):
      • 기본키: 학번(Student ID), 강의번호(Course ID) (복합키로 사용)
      • 외래키: 학번(Student ID), 강의번호(Course ID) (각각 학생과 강의를 참조)
  • 해설:
    • 수강(Enrollment) 엔터티는 학생과 강의 간의 N관계를 표현합니다. 즉, 한 학생이 여러 강의를 수강할 수 있고, 한 강의에 여러 학생이 수강할 수 있습니다.
    • 수강 엔터티에서 학번과 강의번호를 기본키로 설정하여, 각 학생이 어떤 강의를 수강하는지 고유하게 식별할 수 있도록 했습니다.

2. 관계 정의 연습

  • 관계 구성:
    • 회사(Company)와 부서(Department) 간의 관계: 1관계
    • 부서(Department)와 직원(Employee) 간의 관계: 1관계
    • 직원(Employee)와 회사(Company) 간의 관계: N:1 관계 (각 직원은 한 회사에만 소속됨)
  • 해설:
    • 회사는 여러 부서를 가질 수 있으므로 회사와 부서 간의 관계는 1입니다.
    • 부서는 여러 직원을 관리할 수 있으므로 부서와 직원 간의 관계도 1입니다.
    • 직원은 한 회사에만 소속될 수 있으므로 회사와 직원 간의 관계는 N:1입니다. ERD에서는 이 관계들을 표현하여 데이터베이스의 구조를 설계합니다.

 

 

 

 

 

 

 

-------------------------------------------------

3회차 테스트 문제

문제

  1. 다음 중 1관계의 예로 적절한 것은?
    • A) 한 사람이 하나의 주민등록증을 가지고 있다.
    • B) 한 회사는 여러 부서를 가질 수 있다.
    • C) 한 학생은 여러 강의를 수강할 수 있고, 한 강의에는 여러 학생이 수강할 수 있다.
    • D) 한 제품은 여러 공급업체에 의해 제공될 수 있고, 각 공급업체는 여러 제품을 제공할 수 있다.
  2. 기본키(Primary Key)에 대한 설명으로 올바른 것은?
    • A) 기본키는 NULL 값을 허용할 수 있다.
    • B) 기본키는 엔터티 내에서 고유하게 각 레코드를 식별하는 속성이다.
    • C) 기본키는 여러 테이블에서 중복될 수 있다.
    • D) 기본키는 항상 여러 개의 속성으로 구성되어야 한다.
  3. N관계를 해결하기 위해 사용하는 방법은?
    • A) 기본키를 사용해 해결한다.
    • B) 외래키를 두 개 사용하여 교차 테이블(Join Table)을 생성한다.
    • C) 1:1 관계로 변환한다.
    • D) N관계는 데이터베이스에서 구현할 필요가 없다.
  4. 외래키(Foreign Key)에 대한 설명으로 올바른 것은?
    • A) 외래키는 두 엔터티 간의 관계를 나타내며, 참조 무결성을 유지하는 역할을 한다.
    • B) 외래키는 무조건 기본키와 같은 속성이어야 한다.
    • C) 외래키는 테이블 간의 관계와는 무관한 속성이다.
    • D) 외래키는 NULL 값을 가질 수 없다.
  5. 다음 중 ERD에서 다이아몬드(Diamond) 기호로 표현되는 것은?
    • A) 엔터티(Entity)
    • B) 속성(Attribute)
    • C) 관계(Relationship)
    • D) 기본키(Primary Key)

해설 및 답안

  1. [정답: B]
    • 해설: 한 회사가 여러 부서를 가질 수 있는 관계는 1관계의 대표적인 예입니다. A는 1:1 관계, C는 N관계, D도 N관계입니다.
  2. [정답: B]
    • 해설: 기본키는 각 레코드를 고유하게 식별하는 속성으로, NULL 값을 허용하지 않으며 중복될 수 없습니다. 여러 테이블에서 중복될 수 있는 속성은 외래키입니다.
  3. [정답: B]
    • 해설: N관계는 교차 테이블을 사용해 해결합니다. 교차 테이블에는 두 테이블의 외래키가 포함되며, 이로써 N관계를 1관계로 변환할 수 있습니다.
  4. [정답: A]
    • 해설: 외래키는 두 엔터티 간의 관계를 나타내며, 참조 무결성을 유지하는 중요한 역할을 합니다. 외래키는 반드시 기본키와 같을 필요는 없으며, NULL 값을 가질 수 있는 경우도 있습니다.
  5. [정답: C]
    • 해설: ERD에서 다이아몬드(Diamond) 기호는 두 엔터티 간의 관계(Relationship)를 나타냅니다. 엔터티는 사각형, 속성은 타원으로 표현됩니다.
반응형
Comments