[Database] 데이터베이스 설계 및 구조

황인용·2020년 8월 26일
7

Database

목록 보기
9/16

데이터베이스 설계

데이터베이스 설계 순서

개념적 설계(정보 모델링, 개념화)

  • 정보의 구조를 얻기 위해 현실 게계의 무한성과 계속성을 이해하고, 다른 사람과 통신하기 위해 현실 세계에 대한 인식을 추상적 개념으로 표현
  • 스키마 모델링과 트랜잭션 모델링 병행
  • 요구 분석 단계에서 나온 결과(요구 조건 명세)를 DBMS에 독립적인 E-R 다이어그램(r개체 관계도)으로 작성
  • DBMS에 독립적인 개념 스키마를 설계.

논리적 설계(데이터 모델링)

  • 현실 세계의 자료를 컴퓨터가 처리할 수 있는 물리적 저장장치에 저장할 수 있도록 변환하기 위해 특정 DBMS가 지원하는 논리적 자료 구조로 변환.
  • 개념 세계의 데이터를 필드로 기술된 데이터 타입과 이 데이터 타입들 간의 관계로 표현되는 논리적 구조의 데이터로 모델화
  • 개념적 설계 = 개념 스키마 설계
    논리적 설계 = 개념 스키마 평가, 정제 그리고 특정 DBMS에 종속적인 논리적 스키마 설계
  • 트랜잭션의 인터페이스를 설계
  • 관계형 데이터베이스라면 테이블을 설계하는 단계

물리적 설계(데이터 구조화)

  • 논리적 설계 단계에서 논리적 구조로 표현된 데이터를 디스크 등의 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터베이스로 변환
  • 데이터베이스 파일의 저장 구조, 레코드의 형식, 접근 경로
  • 트랜잭션 작성
  • 물리적 설계 옵션 선택 시 고려사항
    : 반응 시간(Response Time), 공간 활용도(Space Utilization), 트랜잭션 처리량(Transaction Throughput)

관계형 데이터베이스 구조

Tuple(튜플)

  • 릴레이션을 구성하는 각각의 행(row)
  • 속성(Attribute)의 모임으로 구성
  • 파일 구조에서 레코드와 같은 의미
  • 튜플의 수 = 카디널리티(Cadinality) = 기수 = 대응수

Attribute(속성)

  • 릴레이션을 구성하는 각각의 열(column)
  • 데이터베이스를 구성하는 가장 작은 논리적 단위
  • 파일 구조 상의 데이터 항목 또는 데이터 필드에 해당
  • 개체의 특성을 기술
  • 속성의 수 = 디그리(Degree) = 차수

Domain(도메인)

  • 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자(Atomic)값들의 집합
  • 실제 애트리뷰트 값이 나타날 때 그 값의 합법 여부를 시스템이 검사하는 데 사용

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

  • 데이터 개체를 구성하고 있는 속성들에 데이터 타입이 적용되어 구체적인 데이터를 값을 갖고 있는 것을 말함.

키(Key)

  • 키(Key)는 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 애트리뷰트(속성)이다.

Candidate Key(후보키)

  • 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합
  • 즉, 기본키로 사용할 수 있는 속성들을 말함
  • 모든 릴레이션은 반드시 하나 이상의 후보키를 가져야함
  • e.g. <학생>릴레이션(테이블)에서 학번이나 주민번호는 다른 레코드에서 유일하게 구별할 수 있는 기본키로 사용할 수 있음으로 후보키

Primary Key(기본키)

  • 후보키 중에서 선택한 주키(Main Key)
  • 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성
  • Null 값을 가질 수 없음
  • 기본키로 정의된 속성에는 동일한 값이 중복되어 저장될 수 없음
  • e.g. <학생>릴레이션(테이블)에서 학번이나 주민번호가 기본키가 될 수 있음,
    <수강>릴레이션(테이블)에서 학번+과목명을 조합하여 기본키가 될 수 있음

Alternate Key(대체키)

  • 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키들을 말함
  • 보조키라고도 함
  • e.g. <학생>릴레이션(테이블)에서 학번을 기본키로 정의하면, 주민번호는 대체키가 됨

Super Key(슈퍼키)

  • 슈퍼키는 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키로서 릴레이션을 구성하는 모든 튜플 중 슈퍼키로 구성된 속성과 집합은 동일한 값을 나타내지 않는다
  • 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족시키지만, 최소성은 만족시키지 못함
  • e.g. <학생>릴레이션(테이블)에서 학번, 주민번호, 학번+주민번호, 주민번호+성명, 학번+주민번호+성명 등으로 슈퍼키를 구성할 수 있다.

Foreign Key(외래키)

  • 관계(Relation)를 맺고 있는 릴레이션 R1, R2에서 릴레이션 R1이 참조하고 있는 릴레이션 R2의 기본키와 같은 R1 릴레이션의 속성
  • 외래키로 지정되면 참조 테이블의 기본키에는 없는 값을 입력할 수 없음
  • e.g. <수강>릴레이션(테이블)이 <학생>릴레이션(테이블)을 참조하고 있으므로 <학생>릴레이션의 학번은 기본키이고, <수강>릴레이션의 학번은 외래키이다
  • <수강>릴레이션의 학번에는 <학생>릴레이션의 학번에 없는 값을 입력할 수 없다
profile
dev_pang의 pang.log

1개의 댓글

comment-user-thumbnail
2024년 3월 19일

What a thoughtful and insightful post! Thank you for sharing with us. Now try to play the game with me. Play game the baby in yellow online.

답글 달기