ch1. DB와 관계 데이터 모델

wonnie1224·2022년 9월 14일
0

DB

목록 보기
1/7

1. DB의 정의 및 특징

3.4. ANSI-SPARC 구조

1) 3가지 수준

(1) 외부 수준 : DB의 일반 사용자들이 갖는 뷰

  • 각 사용자 - 서로 다른 뷰 가짐, DB의 일부분만 나타냄
    ex) 동일한 DB에서 어떤 일부분을 사용하는지에 따라 다양한 뷰가 존재 : 개발부 직원 명단만 알기, 직원들의 평균 월급만 알기

(2) 개념 수준 : DB에 어떤 데이터가 저장되고 그것들이 어떻게 관계되어 있는지 묘사

  • 물리적으로 어떻게 구현될지에 대해서는 상관 없이 저장될 데이터와 관계를 명시
  • 전체 요구 사항을 반영하는 개체들, 그들의 관계, 제약 조건 등으로 명시

(3) 내부 수준 : 컴퓨터에 DB가 물리적으로 저장되는 방법 표현

  • 특정 데이터 구조를 사용하여 DB 구현되는 것을 명시

2) 데이터 독립성

ANSI-SPARC 구조의 주 목적은 데이터 독립성 제공!

  • 데이터 독립성 : 상위 단계의 스키마 정의에 영향 주지 않으면서 하위 단계의 스키마 정의를 변경 가능함

(1) 논리적 데이터 독립성

: 개념 수준의 변화 -> 외부 수준에 영향 안 줌

  • 개념 수준의 구조가 바뀌었다고 해서 사용자 레벨에서 영향 안 받아도 됨
  • 사용자들이 사용하는 응용 프로그램을 다시 작성할 필요 없이 개념 수준에 대한 변화가 가능해야 함 (개체, 속성, 관계의 추가, 삭제 등 의미)

(2) 물리적 데이터 독립성

: 내부 수준의 변화가 개념 수준에 영향 안 줌
=> 외부 수준(응용 프로그램)에도 영향을 미치지 않아야 함

  • 내부 스키마 변화 ex) 새로운 디스크에 DB가 저장

무결성 제약 조건

무결성 : "결함이 없다"

  • 무결성(데이터의 정확성 & 일관성) 유지하도록 DB 상태가 만족시켜야 하는 조건
  • DBMS에서 시행
  • 스키마 정의 시 단 1번 정의됨

종류

1. 도메인 제약 조건

: 릴레이션의 애트리뷰트가 해당 도메인에 지정된 값만 가져야 함

2. 개체 무결성 제약 조건 (= 기본키 제약 조건)

: 릴레이션은 기본키를 가져야 함
: 기본키를 구성하는 어떤 애트리뷰트도 null값 가질 수 X
-> NOT NULL 키워드 없어도 됨

// 어떤 애트리뷰트를 기본키로 하려면 애트리뷰트 정의할 때 옆에 기본키라고 같이 써줘도 됨
EMPNO INT	PRIMARY KEY,

3. 참조 무결성 제약 조건 (= 외래키 제약 조건)

: 두 릴레이션 간의 참조 관계를 명시하는 제약 조건

  • 부모 릴레이션 : 참조당하는 릴레이션
  • 자식 릴레이션 : 참조하는 릴레이션
    => 자식 릴레이션의 값이 변경될 때 부모 릴레이션의 제약을 받음
    1) 자식 릴레이션의 외래키 - 부모 릴레이션의 기본키와 같은 도메인을 가져야 함
    2) 자식 릴레이션의 외래키 값 - 부모 릴레이션의 기본키 값과 동일 / null값이어야 함

(1) 릴레이션 키의 종류

수퍼키 : 한 릴레이션 내의 튜플을 고유하게 식별, 1개 이상의 애트리뷰트의 집합

  • 애트리뷰트 1개여도 됨
  • 유니크한 애트리뷰트 1개만 포함하고 있어도 ㄱㅊ
    ex) (사번, 이름, 주민등록번호, 직책)

후보키 : 투플을 고유하게 식별할 수 있는 최소한의 애트리뷰트들의 집합

  • 복합키 : 후보키가 2개 이상의 애트리뷰트로 이루어질 때
    수강 - (학번, 과목) -> 외래키 2개 모여서 기본키 이루는 거 생각
  • 기본키들의 모임이라고 생각하자.

기본키 : 여러 후보키들 중 1개를 대표로 정한 거

  • 긴 문자열, 개인정보 담고 있는 건 안 하려고 함

대체키 : 기본키로 선정되지 않은 후보키

ex) 후보키 : 사번, 주민등록번호 중 사번이 기본키 되면 주민번호가 대체키임

대리키 : 자연스러운 기본키 없음 / #개의 복합키가 기본키가 되는 경우, 기본키 역할 하게끔 인위적으로 추가된 키

외래키 : 어떤 릴레이션의 기본키를 참조하는 애트리뷰트

profile
안녕하세요😊 컴퓨터비전을 공부하고 있는 대학생입니다 🙌

0개의 댓글

관련 채용 정보