클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

데이터 입출력 구현 3 - Session 33~34 : E-R 모델 및 관계형 데이터베이스 모델 본문

자격증 공부/정보처리기사 실기

데이터 입출력 구현 3 - Session 33~34 : E-R 모델 및 관계형 데이터베이스 모델

huenuri 2024. 9. 24. 22:38

E-R 모델인 개체 관계 모델에 대해서 학습해볼 것이다. 이번 장은 31 세션부터 36까지 한번에 묶어서 학습하고 정리해보려고 한다.


 

 

 

세션 33 : E-R(개체-관계) 모델

 

 

 

 

1번은 개체, 관계, 속성이다. 2번은 E-R 모델이다. 1번은 순서를 반대로 적었다. 다시 한번 정리해보면 다음과 같다. 바로 위에 문제의 답이 나와있기에 이 부분을 보지 않고 나 혼자서 생각했다.

사각형은 개체 타입이다. 마름모가 관계 타입, 타원이 속성, 이중 타원은 다중값, 밑줄 타원은 기본키 속성이다. 그리고 속수 타원은 복합 속성, 관계는 객체 간 관계에 대한 대응수를 선 위에 기술한다. 선과 링크는 개체 타입과 속성을 연결한 것이다. 이 부분은 중요하니 꼭 암기하기로 하자.


 

 

 

 

세션 34 : 관계형 데이터베이스의 구조 및 관계형 데이터 모델

 

 

 

 

 

 

 


 

 

 

 

 

 

 

문제가 정말 어려워보이지만 그래도 한번 풀어보자. 1번은 18, 3, 5이다. 2번은 서술형이니 넘어가고, 3번은 6, 4번은 9개이다. 5번은 관계형 데이터베이스 모델이다. 6번은 튜플, 릴레이션 스키마, 릴레이션 인스턴스라고 찍어보았다.

1개빼고 다 틀렸다. 아직 개념들을 잘 모르고 어떻게 값이 나오는지도 모르는 것 같다. 분명 필기에서 다 배웠던 건데 하나도 기억이 나지 않는다.

1번에서 릴레이션은 한 테이블에 1개를 말하는 것 같다. 다른 건 맞게 풀었다. 도메인은 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자값들의 집합이다. 3번 문제는 릴레이션, 렐레이션 스키마, 속성, 후보키, 릴레이션 인스턴스, 릴레이션 차수 등 다양한 개념을 알고 있어야 한다. 이 개념에 대해서 다시 한번 정리해보기로 하자.

 

1. 릴레이션 (Relation)

  • 관계형 데이터베이스에서 테이블(Table)을 의미한다. 각 테이블은 데이터를 저장하는 기본 구조로, 행과 열로 구성된다.
    • 행(Row) : 하나의 행은 하나의 레코드 또는 튜플을 나타낸다. 예를 들어, 학생 테이블의 한 행은 하나의 학생 정보를 의한다.
    • 열(Column) : 하나의 열은 데이터의 속성을 나타낸다. 예를 들어, 학생 테이블에서 ‘이름’, ‘학번’, ‘학과’ 같은 것들이 열에 해당한다.
  • 릴레이션의 특징
    • 모든 데이터는 정형화된 형태로 행과 열로 구성된다.
    • 각 행은 유일해야 하며, 즉 중복되는 행이 없어야 한다.
    • 열은 속성(attribute)이라 부르며, 각 속성의 데이터 타입이 미리 정의되어 있다.

2. 속성 (Attribute)

  • 릴레이션(테이블)의 열(Column)을 의미한다. 속성은 데이터를 구분하고 정의하는 특성으로, 테이블의 각 열은 특정 속성에 해당한다.
    • 예 : 학생 테이블의 경우 '학번', '이름', '학과' 등이 속성이 된다.

3. 후보키 (Candidate Key)

  • 후보키는 릴레이션(테이블)에서 각 행을 유일하게 식별할 수 있는 최소한의 속성들의 집합이다. 후보키는 여러 개가 있을 수 있으며, 그중 하나를 기본키(Primary Key)**로 선택합니다.
    • 조건
      • 각 행을 유일하게 식별할 수 있어야 함 (유일성)
      • 최소한의 속성만으로 식별할 수 있어야 함 (최소성)
    • 예: 학생 테이블에서 '학번'은 유일하게 학생을 식별할 수 있으므로 후보키가 될 수 있다.

4. 릴레이션 스키마 (Relation Schema)

  • 릴레이션 스키마는 릴레이션의 구조를 정의하는 설계도이다. 쉽게 말해, 테이블의 구조를 설명하는 데 사용되는 속성들의 집합이다.
    • 릴레이션의 이름과 각 속성(열)의 이름 및 그 데이터 타입이 포함된다.
    • 예: 학생 테이블의 스키마는 다음과 같이 표현될 수 있다. 학생(학번: integer, 이름: varchar, 학과: varchar)

5. 릴레이션 인스턴스 (Relation Instance)

  • 릴레이션 인스턴스는 릴레이션에 실제로 저장된 데이터의 집합을 말한다. 릴레이션 스키마가 테이블의 구조라면, 릴레이션 인스턴스는 해당 테이블에 저장된 실제 데이터를 의미한다.
    • 릴레이션 인스턴스는 시간이 지남에 따라 변화할 수 있다. 예를 들어, 새로운 학생이 등록되면 학생 테이블의 인스턴스에 새로운 행이 추가된다

6. 릴레이션 차수 (Degree of Relation)

  • 릴레이션의 차수릴레이션의 속성의 개수를 의미한다. 쉽게 말해, 테이블의 열이 몇 개인지를 나타낸다.
  • 차수의 특징
    • 릴레이션의 차수는 속성의 개수에 따라 고정되며, 릴레이션 인스턴스가 변해도 차수는 변하지 않는다.
      • 예를 들어, 새로운 행(레코드)이 추가되거나 삭제되어도 속성의 수는 변하지 않으므로 차수는 변하지 않는다.
    • 테이블의 설계 시 정의된 스키마에 따라 차수가 결정되며, 테이블의 구조가 변하지 않는 한 차수는 일정하게 유지된다.

그러니까 3번 문제에서 릴레이션 차수는 속성과 같다. 즉 4개의 속성을 갖고 있으니 4이다. 이제 확실히 정리가 되었다. 4번 문제도 스스로 풀어보기로 하자.

하지만 이 문제를 풀기 전에 도메인에 대해서 알아야 한다. 도메인은 하나의 속성이 가질 수 있는 값들의 집합이다. 그러니까 튜플은 이 3가지 속성들을 모두 곱한 값인 24가 된다.

6번에서 답은 튜플, 릴레이션 인스턴스, 커디널리티이다.

 


 

 

 

학습을 마치고

문제가 정말 어려웠다. 그리고 개념을 하나하나 정리하느라 시간이 많이 걸렸지만 이렇게 하니 공부를 제대로 할 수 있어서 더 좋기는 했다. 사실 내일까지 가능하면 1권을 마치려고 했으나 자격증 시험은 한 가지를 파면 좀 질리는 경향이 있는 것 같았다. 그래도 오늘까지 가능하면 2장을 다 마치고 3장부터 나머지는 4일에 걸쳐 매일 조금씩 공부할 생각이다.

그런 다음 30일 월요일에는 전체를 총 정리하며 암기하는 시간을 가져볼 것이다. 10월에는 12일 동안 2권을 다 공부해야 시험 일주일 전에 기출문제를 풀며 학습을 정리할 수 있을 것 같다.