데이터베이스입문

김명윤·2023년 10월 9일

데베입

목록 보기
4/8

2017 중간고사

manual navigation vs automatic navigation

  1. 자동 네비게이션 (Automatic Navigation)

    • 사용자는 원하는 결과물만 명시합니다. 즉, '무엇'을 원하는지만 알려줍니다.
    • 예시: "나는 오늘 팔린 모든 상품의 목록을 보고 싶어."
    • 사용자는 상세하게 어떻게 찾아야 하는지에 대해선 지시하지 않습니다.
    • 대부분의 관계형 데이터베이스(Relation System)에서 사용하는 SQL 같은 언어는 이런 방식을 따름
  2. 수동 네비게이션 (Manual Navigation)

    • 사용자는 원하는 결과를 얻기 위해 구체적인 절차나 순서를 지정해야 합니다.
    • 예시: "첫 번째 창고에서 상품 목록을 가져오고, 그 다음 두 번째 창고에서 가져와서 합쳐보여줘."
    • 여기서는 '무엇'뿐만 아니라 '어떻게' 찾아야 하는지도 지시해야 합니다.
    • 비관계형 데이터베이스(Nonrelation System)에서는 이런 방식으로 작동하는 경우가 많습니다.

automatic navigation이란 relation system에서와 같이 navigation process가 사용자 요청을 만족하기 위해 저장된 데이터에 대해 자동적으로 수행된다는 것을 말하는 것이다.
system이 “how”에 대한 부분은 제공하지만 “what”에 대한 부분은 사용자가 지정을 해주어야 한다.
이와 반대로 manual navigation이란 nonrelation system에서와 같이 navigation process가 사용자가 명시된 모든 절차에 의해 이루어진다는 것이다. “what”뿐만 아니라 “how”에 대한 부분도 사용자가 지정해주어야 한다.

foreign key

어떠한 relvar R2의 속성들의 value가 또 다른 relvar R1의 후보키들의 value와 match 되어야 할 때, 이를 foreign key라 부른다.

closure property

  • 관계형 성질 중 닫힘 성질(closure property)는 임의의 연산에 대한 출력이 그 연산의 입력과 같은 종류의 객체임을 의미
  • 관계형 데이터베이스에서, SELECT(RESTRICT), PROJECT, JOIN 연산의 결과는 또 하나의 테이블이다.

파일 기반 시스템에서 데이터 처리 방식을 기술하고 문제점을 설명하라.

  • 파일 기반 시스템에서는 어떤 내용을 저장하기 해 막대한 양의 파일이 필요하며,이에 대한 질의 처리를 일일이 파일 별로 탐색하여 수행해야 한다
  • 문제점:
  1. 내부구조에 대한 정보가 없기 때문에 내부 구조의 정보에 의존한 처리요구를 수행할 수 없다.

  2. 보안이나 무결성 규칙을 지원할 수 없다. (0.5)

  3. 응용과 데이터의 dependency에 의한 문제가 발생한다.즉 데이터 독립성을 지원할 수 없다

데이터베이스 접근 방식과 파일 기반 접근방식을 비교 설명하라

  • 파일 기반 접근방식과 달리 데이터베이스 접근방식은 데이터 공유를 통해 redundancy를 감소시 키고,불일치를 피할 수 있다.
  • 데이터의 표준화와 트랜잭션 제공을 통해 시스템이 효율적으로 수행됨
  • 데이터의 무결성(integrity)유지가 수월
  • (sercurity측면에서 장점을 가짐

논리적 데이터 독립성과 물리적 데이터 독립성을 정의하고, DBMS에서 어떻게 구현하고 있는지를 설명하라

  • Logical Data Independence
    데이터베이스의 논리적 구조(테이블, 열, 관계 등)가 변경되어도 응용 프로그램의 논리적 구조에는 영향을 주지 않는 특성
  • Physical Data Independence
    데이터베이스의 저장 방식, 인덱스, 파일 구조 등이 변경되어도 응용 프로그램의 논리적 구조에는 영향을 주지 않는 특성
  • DBMS에서의 구현
    물리적 표현과 접근 기법(access technique)으로부터 응용을 분리시킨다.
    즉 데이터베이스에 대한 사용자 인터페이스를 제공한다.

DBA의 주요 기능(function)을 5가지 이상 들고 자세하게 설명하라

① 데이터베이스의 개념 스키마를 정의

  • 어떤 정보가 데이터베이스에 포함되어야 하는지 정확하게 결정하는 것이 DBA의 일이다.
  • 이러한 과정을 보통 논리적(또는 개념적)데이터베이스 설계라 한다

② 내부 스키마 정의

  • DBA는 데이터베이스 안에서 데이터가 어떻게 표현되는지 결정해야 한다
  • 이 과정을 보통 물리적 데이터베이스 설계라 한다.

③ 사용자와의 연락

  • 사용자가 요구한 데이터가 사용 가능함을
    보장하고,필요한 외부 스키마를 응용 가능한 외부 DDL을 사용하여 기록할 수 있도록 해준다.

④ 보안 검사와 무결성 검사 정의

  • 보안과 무결성 검사는 개념 스키마의 일부로 간주할 수 있다.이러한 검사들을 정의하는데 필요한
    기능을 개념 DDL이 포함하고 있다.

⑤ 변화하는 요구에 대한 적응과 성능 향상에 대한 감시

  • 예를 들면 시스템의 성능이 적절하게 유지되
    도록 하기 위해서 주기적으로 데이터베이스를 재구성한다.

부서-고용인(department-employee) 데이터베이스를 가정한다.

DEPT(DEPT#, DNAME, BUDGET)
EMP(EMP#, ENAME, DEPT#, SALARY)

(a) 이에 대한 카탈로그(TABLES, COLUMNS)의 개략적인 구조를 스케치 하라

(b) 카탈로그는 self-describing하다.카탈로그의 구조가 어떻게 확장되어야 하겠는가?

카탈로그가 자술적(self-describing)이라는 의미는 카탈로그 안에 카탈로그 자신에 대한 정보도 포함됨을 의미함

(c) column EMP#을 갖는 모든 relvar 이름을 구하기 위한 질의를 작성하라.

  • SELECT TABNAME FROM COLUMNS WHERE COLNAME = "EMP#"

학생들이 각각 다른 수업 분반의 각각 다른 시험에서 받은 성적을 기록하는 데이터베이스를 가정한다. 시험을 개체로 모델링하고 ternary 관계를 이용하여 이 데이터베이스를 모델링하는 ERD를 작성하라.

  • Entitiy : 다른 객체들과 구별되는 실제 존재하는 개체
    예를 들어, 특정한 사람, 회사, 이벤트, 식물 등이 엔터티의 예시

  • Attribute : 엔터티는 특성을 가지며, 이는 해당 엔터티를 구별하는 데 사용됩니다.
    예를 들어, 사람 엔터티는 이름, 주소 등의 특성을 가질 수 있습니다

  • Relationship:여러 엔터티들 간의 연관성을 나타냄

    • 속성(Attribute)이 관계 집합(Relationship Set)의 특성이 될 수 있음
    • 예를 들어, "depositor" 관계 집합은 고객과 계좌 간의 관계를 나타내는데, 이 관계 집합에 "접근 날짜(access-date)"라는 속성을 추가할 수 있음
  • Mapping Cardinality: 나의 엔터티가 다른 엔터티와 얼마나 많은 관계를 맺을 수 있는지를 나타냄

  • key
    Super Key는 엔터티를 식별하는데 필요한 모든 속성의 조합입니다. Candidate Key는 그 중에서도 최소한의 속성으로 이루어진 키로, 각각의 엔터티를 고유하게 식별할 수 있습니다. Primary Key는 Candidate Key 중에서 선택되어 특정 엔터티를 식별하는 데 사용됩니다.

  • Rectangle : 엔터티 집합

  • Diamond: 관계 집합

  • Line: 속성(Attribute)과 엔터티 집합 또는 관계 집합을 연결

  • Ellipse: 속성을 나타냄

  • Double Ellipse : 다중값 속성(multivalued attribute)을 나타냄

    • 하나의 엔터티가 여러 개의 값들을 가질 수 있는 경우
  • Dashed Ellipse : 파생된 속성(derived attribute)을 나타냄

    • 다른 속성들로부터 계산된 값

  • Total Participation (전체 참여):

이는 모든 엔터티가 관계에 참여해야 함을 의미합니다. 즉, 한 쪽 엔터티가 다른 쪽 엔터티와 연관이 있어야만 합니다.

이중선으로 나타냄

예를 들어, '대출' 관계에서는 모든 대출은 반드시 어떤 고객과 연결되어야 합니다. 대출은 반드시 고객과 관련이 있어야 합니다.

  • Partial Participation (부분 참여):

이는 일부 엔터티만이 관계에 참여할 수 있음을 의미합니다. 다시 말해, 연관성이 없는 엔터티가 있을 수 있습니다.

예를 들어, '고객' 관계에서는 일부 고객이 대출을 받지 않을 수 있습니다. 일부 고객은 대출과 전혀 관련이 없을 수 있습니다.

Weak Entity Set

primary key를 가지고 있지 않은 엔터티 집합

  • Identifying Entity Set : 약한 엔터티 집합(Weak Entity Set)이 다른 엔터티 집합에 종속적일 때, 그 종속 관계를 식별해주는 엔터티 집합을 의미

    • 예를 들어, "의자"라는 약한 엔터티 집합은 "방"이라는 엔터티 집합에 종속적입니다. 즉, 각 의자는 어떤 방에 속해야만 고유하게 식별될 수 있습니다. 이때 "방" 엔터티 집합이 identifying entity set이 되는 것

    • double diamond은 약한 엔터티 집합과 식별 엔터티 집합 간의 관계를 나타내며, 약한 엔터티 집합이 식별 엔터티 집합에 종속되어 있음을 시각적으로 표현

  • Discriminator :약한 엔터티 집합 내에서 각 엔터티를 고유하게 식별하는 데 필요한 정보

  • 약한 엔터티 집합의 주 키는 강한 엔터티 집합의 주 키와 판별자의 조합으로 구성됨

  • weak entity는 이중 사각형

  • Primary key for payment – (loan_number, payment_number)

weak entity set은 identifying entity set의 주 키 속성을 추가함으로써 string entity set으로 만드는 것이 가능하다.만약 그렇게 한다면 어떤 종류의 중복이 생기는지를 설명하라

Indentifying entity set 의 primary key가 explicit 하게 저장되면, weak-entity set 을 strong entity set으로 만들 수 있다. 그런데 이때 identifying relation 의 attribute가 strong entity set의 attribute의 중복이 된다.

예제에서 loan_number가 payment에 저장되면 entity set payment schema에는 4개의 속성
(loan_number, payment_number, payment_date, payment_amount)가 저장되는데, 이때 loan_payment schema 에 저장된 단 두가지 속성인 (loan_number, payment_number)attribute가 중복된다.

Aggregation

관계들 간의 관계를 표현하기 위해 관계를 상위 개체로 취급하는 추상화 기법

“어떤 직원이 어떤 지사에서 수행한 일을 관리하는 관리자를 기록하고자 한다.”

  • 관계 manages에 있는 모든 개체 employee, branch, job 조합은 관계 works-on에도 있 으므로 위의 ERD는 과다한 정보가 들어있다
  • 관계 works-on과 manages는 하나의 관계
    집합으로 결합될 수 있는 것처럼 보이지만 employee. branch, job 조합은 관리자를 갖지 않기 때문에 두 관계를 결합될 수 없다

Summary of Symbols Used in E-R Notation

다음의 관계형스킴을 사용하여 답하라. 밑줄은 기본 키 속성을 의미한다.

S(S#, SNAME, STATUS, CITY),
P(P#, PNAME, COLOR, WEIGHT, CITY),
SP(S#, P#, QTY)

(가) Base relation과 뷰(view)의 차이점을 설명하고, 뷰에 대한 질의처리 과정을 설명하라.

  • 기본 릴레이션(base relation)은 각기 고유명이 있고, DB에 독립적으로 존재한다.
  • 뷰는 기본 릴레이션 에서 유도된 또 하나의 릴레이션(relation)이다.뷰는 독립적으로 존재하는 것
    이 아니고 가상으로 존재한다

뷰에 대한 질의처리 과정

1) 뷰의 정의 sql이 시스템 카탈로그에 저장된다.
2) 실제적 정의sql문에서 참조된 뷰명은 시스템에서 시스템 카탈로그에 저장된 정의로 치환된다.
3) 최적화 과정을 거쳐서 변환한다.

(나) Embedded SQL 문이 포함된 응용 프로그램에서 프로그램 중간에 ‘EXEC SQL FETCH X…’와 같은 문장이 있다면, 이 문장이 나타나기 전에 반드시 먼저 나타나야 하는 Embedded SQL 명령문들을 설명하라

profile
김변

0개의 댓글