DB2 - 1(설계전 이론)

topics 700-컴퓨터과학
types 레퍼런스

이론과 설계을 배워야하는 이유

이론의 중요성

  • 결과를 예측할 수 있도록 도와준다.
    설계의 중요성
  • 데이터의 일관성,무결성,정확성에 영향을 준다
  • 부적절하게 설계를 했을 경우 정보추출이 힘들고, 검색에서 부정확한 정보를 얻는 위험을 감수해야한다.
    좋은 설계 방법론의 장점
  • 단계적으로 기술의 조직화된 집합을 제공함
  • 실수와 설계반복을 최소화 할 수 있음
    좋은 설계의 목적
  • db는 필수적인 것과 임의적인 정보 추출을 둘다 지원함
  • 필드,테이블,관계수준에서 무결성이 부과됨
  • 업뮤규칙을 지원함
    좋은 설계의 이점
  • db구조를 쉽게 수정,유지할 수 있음
  • 정보추출이 쉬움
  • 최종 사용자 어플리케이션 개발이 쉬워짐

전통적인 설계 방법

3단계를 거침

1. 요구사항 분석

  • 모델이 되는 사업에 대한 조사
  • 현재의 평가와 요구 분석을 위한 사용자 및 관리자와의 면담
  • 사업전반에 대한 요구사항 평가

2. 데이터 모델링

  • erd
    • 관계는 다이아몬드,
  • 의미-개체 모델링
  • 개체-관계 모델링

ERD

DB1 - 데이터 모델링(DB 설계) 여기에 설명이 더 자세히 되어있음.

3.정규화

중복 데이터와 이중 데이터를 줄이고, 데이터 삽입-갱신-삭제에서 발생하는 문제를 줄여줄 수 있다.
DB1 - 종속성과 정규화

설계를 위한 용어

값 관련 용어

  • 데이터 : 정적 , 데이터베이스에 ”저장“하는 값, 표면적 의미 없음
  • 정보 : 동적, 무언가를 위해 의미 있고 유용하도록 처리한 데이터, 정보는 ”추출“하는 것
  • null : 누락되었거나 미지의 값
    • 누락 : 일반적으로 사람의 오류
    • 미지 : 값이 정의디지 않음, 정말 unknown, 적용 되지 않음(적용하지않다/적용할 수 없다)
      • 적용할 수 없는 경우 N/A가 더적합함
    • 단점 : 널을 포함하는 연산은 널로 평가됨

구조 관련 용어

  • 테이블
    • 각 테이블은 항상 하나의 구체적 주제를 나타냄
      • 주제는 개체 or 사건
    • 관계형에서는 릴레이션이라고 불림,각 릴레이션은 튜플(레코드),속성(필드로) 구성
    • 논리적으로 테이블을 구성함에 따라 데이터의 물리적 독립성을 유지
      • 테이블내의 레코드와 필드의 논리적 순서는 중요치 않음
      • 각 레코드 들은 식별하는 주키를 포함
    • 종류
      • 데이터 테이블
        • 정보를 제공하는 테이블, 데이터 조작 가능
      • 검증 테이블(lookup table)
        • 데이터 무결성을 구현하는데 사용하는 데이터를 저장
        • 정적임
        • 값을 검증하기 위해 간접적으로 테이블 사용
        • 일반적으론 주제를 나타냄
  • 필드
    • db에서 가장 작은구조
    • 속해있는 테이블의 주제의 특성을 나타넴
    • 좋은 db는 한필드에 하나의 값(원자성)
    • 잘못 설계된 db의 필드 종류
      • 계산된 필드: 다른필드의 정보들을 계산한 결과를 포함하는 필드
      • 다중 부분 필드 : 둘이상의 서로 다른 항목들을 값으로 가지는 필드
      • 다중 값 필드 : 같은 종류의 값을 여러벌 가지는 필드
  • 레코드
    • 테이블 주제의 고유한 인스턴스
    • 주키에 의해 테이블 전체에 걸처 식별
    • 가상적 테이블
      • 자체적으로 뎅터 저장 ㄴㄴ, 기반데이터들로 부터 데이터 추출
    • db내의 정보를 다른 측면에서 볼 수 있음
    • 여러 테이블로 온 데이터를 작업하는 것을 허용
    • 사용자가 특정 필드를 보거나 조작하는것을 방지(보안에 굿)
    • 데이터 무결성에 사용가능(검증뷰)
    • 레코드 식별시 사용되는 논리적 구조
    • pk : 전체 db에 걸처 특정 레코드를 식별하고 주키 필드는 전체 db를 거처 주어진 테이블을 식별함
    • fk : 두 테이블 간의 관계설정, 관계수준의 무결성에 도움이 됨(고아레코드 방지)
  • 인덱스
    • 데이터 처리를 개선하기 위해 rdbms가 제공하는 구조
    • 논리적 db 구조와 관련이 1도 없음
    • 데이터 처리를 최정화 하기 위해 사용하는 물리적 구조

관계 관련 용어

  • 데이터 무결성에 도움이 됨
    • 중복 데이터를 줄이고 이중데이터를 베제하는데 도움이 됨
  • 다중테이블 뷰를 만들 수 있게 해줌
  • 참여 종류
    • 강제적 : B테이블에 하나의 레코드를 삽입전에 적어도 A테이블에 적어도 하나의 레코드를 삽입해야함
    • 선택적 : B테이블에 하나의 레코드를 삽입전에 A테이블에 레코드 삽입할 필요 없음
  • 참여 수준
    • 연관된 테이블의 한레코드와 반드시 연결되어야하는 테이블의 최소레코드 수와 허용되는 최대 레코드 개수를 결정함
    • 왼쪽엔 최소 오른쪽에 최대
    • ex) 테이블 : 대행사, 고객
      • 대행사가 적어도 하나의 고객을 상대함 but 8명이상은상대하지 못함
      • 참여수준 : 1,8

1) 일대일관계

Pasted image 20240421022139.png - 서로 한레코드만 연관되어있을때 - 한테이블은 부모테이블역할, 다른 한 테이블은 자식역할 - 부모테이블의 주키의 복사본을 취해서 자식 테이블의 구조에 포함시킴(이거시 외래키가 됨)

2) 일대다관계

Pasted image 20240421022345.png Pasted image 20240421022428.png - A레코드가 B의 여러 레코드에 연관, 역은 오직 하나 - 부모,자식모델 성립 - 중복 데이터를 최소화 하는데 도움을 줌(데이터 무결성에 굿) - 가장 일반적인 관계

3) 다대다관계

Pasted image 20240421022617.png Pasted image 20240421023050.png - 여러 레코드 link 여러레코드 - 서로 관계가 있는 주키의 복사본을 취함 - 연결테이블이라고 함 - 연결된 테이블끼리 레코드를 연결시키기 쉽게 해주고, 추가 삭제 수정에 문제 없도록 보장하는데 도움이 됨 - pkfk 합쳐서 연결테이블의 복합 주키를 형성

무결성 관련 용어

  • 필드 명세 : aka 도메인
    • 필드의 모든 요소를 나타냄
    • 일반적 요소 : 필드 이름,설명,부모테이블등
    • 물리적 요소: 어케만들어지고 어케표현할지
    • 논리적 요소: 필드에 저장되는 값을 설명,필수값 범위 등
  • 데이터 무결성
    • 데이터의 유효성,일관성, 정확성을 가르킴
    • db추출정보의 정확성은 데이터 무결성 수준에 정비례
    • 테이블 수준의 무결성
      • 중복 레코드 ㄴㄴ
      • 각 레코드를 식별하는 필드가 유일하고 널이아님
    • 필드 수준의 무결성(aka 도메인 무결성)
      • 필드 구조가 정확하고 값이 유효하고 일관성있음
      • 같은 종류의 필드가 db전체에 걸처 일관성있게 정의 됨
    • 관계수준의 무결성(aka 참조 무결성)
      • 테이블 쌍 관계가 정확함
      • 임의의 테이블에서 삽입 갱신 삭제 될때마다 동기화 되는것을 보장
    • 업무 규칙
      • 조직이 데이터를 인식하고 사용하는 방법을 기초로함
      • db의 특정한 측면에 대해 제약,규제를 부과
      • 필드 내 저장되는 값을 번위와 형식, 참여종류와 수준 등 설계측면에 영향을 미칠 수 있음