DataBase 정리(1)

June 02, 2020 ( last updated : June 03, 2020 )
DataBase

https://github.com/sneakstarberry/


Abstract

데이터 베이스 시험을 대비하여서 처음부터 정리를 하고 있다. 지금은 두번째 정리이다.

DataBase(1)

데이터베이스 스키마=시스템 카탈로그, 데이터 사전

데이터베이스 상태

데이터베이스 시스템(DBS: Database System)의 구성 요소

데이터베이스

DBMS

사용자

하드웨어

용어 정리

| 공식적인 용어 | 자주 사용되는 용어 | 화일 시스템의 용어 | | ————- | —————— | —————— | | 릴레이션 | 테이블 | 화일 | | 투플, 카디날리티 | 행/레코드 | 레코드 | | 애트리뷰트, 차수 | 열, 속성, 컬럼 | 필드 |

데이터 모델

데이터베이스의 구조를 기술하는데 사용되는 개념들의 집합인 구조(데이터 타입과 관계), 이 구조 위에서 동작하는 연산자들, 무결성 제약 조건들로 이루어짐

데이터 모델을 보고 그 데이터베이스가 어떻게 생겼는지(구조(structure)), 그 데이터베이스는 어떤 기능을 담당하는지(연산(operation)), 그 데이터베이스가 오류가 없도록 지켜져야 하는 규칙들은 뭐가 있는지(무결성 제약 조건(constraints)), 이런 세가지 조건이 데이터 모델 안에 담겨져 있다.

DM := <Structure, Operation, Constraints>

=> 이론적 데이터 모델을 SW로 구현한 것이 바로DBMS이다.

관계 데이터 모델

릴레이션의 관점에서 모든 데이터를 논리적으로 구성하며 선언적인 질의어(원하는 데이터what만 명시, 어떻게 찾는 지how는 명시 X)를 통한 데이터 접근을 제공한다. 한 릴레이션은 데이터베이스에 표현되는 한 엔티티(하나의 주제만 들어가야한다.)에 관한 정보를 저장한다. 릴레이션의 각 행을 레코드(=튜플)라고 부른다. 릴레이션의 하나의 열을 애트리뷰트라고 부른다. 애트리뷰트는 서로 이름이 달라야하고 적당한 의미를 갖고 있어야한다.

차수(degree): 열들의 개수(최소 1개) 카디날리티(cardinality): 행들의 개수(=튜플의 개수) 도메인: 한 애트리뷰트에 나타날 수 있는 값들의 집합(=데이터 타입)이다. 각 애트리뷰트의 도메인의 값들은 원잣값이다.

릴레이션의 특성

관계 데이터 모델에서 릴레이션은 투플들의 집합이다.

ㄹㅇ 4대 특징

  1. 애트리뷰트들의 순서는 중요하지 않다. (애트리뷰트의 무순서) 이유는 애트리뷰트는 집합이기 때문에 집합의 원리가 적용된다.
  2. 릴레이션이 투플들의 집합이기 때문에 동일한 투플이 두 개 이상 존재하지 않는다. (투플의 유일성)
  3. 한 투플의 각 애트리뷰트는 원잣값을 갖는다. (애트리뷰트의 원잣값)
  4. 릴레이션이 투플들의 집합이기 때문에 투플들의 순서는 중요하지 않다.

    릴레이션 키

    키는 애트리뷰트들의 모임이다.

역할

  1. 특정 투플을 검색
  2. 다른 투플들과 연관시킬 수 있도록하기위해서

키를 구성하는 애트리뷰트 수가 적을수록 좋다. 키가 작을수록 인덱스의 크기가 줄어들고 인덱스를 검색하는 시간이 단축된다.

종류

한 릴레이션 내의 특정 투플을 고유하게 식별하는 하나 이상의 애트리뷰트의 모임이다.

각 투플을 고유하게 식별(슈퍼키의 속성)하는 최소한의 애트리뷰트들의 모임 (유일성 + 최소성)

후보 키도 두 개 이상의 애트리뷰트로 이루어질 수 있으며 이 경우에 복합키라고 부른다.

어떤 시점에 중복된 값이 없다고 해서 미래에도 중복이 발생하지 않는다고 단정할 수는 없다.

후보 키가 두 개 이상 있으면 데이터베이스 설계자 도는 데이터베이스 관리자가 이들 중에서 하나를 기본 키로 선정한다.

자연스러운 기본 키를 찾을 수 없는 경우에는 레코드 번호와 같이 종종 인위적인 키 애트리뷰트를 릴레이션에 추가할 수 있다. 이를 대리 키(surrogate key), 인공 키라고 한다.

고려사항

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

어떤 릴레이션의 기본 키를 참조하는 애트리뷰트이다. 릴레이션들 간의 관계를 나타내기 위해서 사용 외래 키 애트리뷰트는 참조되는 릴레이션의 기본 키와 동일한 도메인을 가져야 한다.

Originally published June 02, 2020
Latest update June 03, 2020

Related posts :

{# #}