본문 바로가기

DB

데이터베이스(2)

키 : 독특한 역할을 수행하는 특별한 필드

  • 기본키 (Primary Key)
    • 특정 레코드를 유일하게 구별할 수 있는 속성
    • 각각의 테이블은 반드시 기본키를 가져야 함
    • 유일하게 식별되고, 중복되지 않아야 하며, NULL값을 가질 수 없음
     

  • 외래키 (Foreign Key)
    • 테이블 사이의 관계를 설정할 때 사용
    • 참조 무결성 : 외래키의 값이 외래키가 참조하는 기본키의 값과 반드시 일치해야 함
    • 첫번째 테이블로부터 기본키의 복사본을 만든 후 두 번째 테이블에 포함시킨 것 → 기본키 ≒ 외래키

인덱스

데이터 베이스에서 검색 속도 향상과 같은 데이터 처리를 향상시키기 위해 만든 물리적인 자료구조

 

관계 : 테이블 쌍 사이의 연결

  • 첫 번째 테이블의 레코드를 두 번째 테이블의 레코드와 연관 시킬 수 있는 것
  • 1대1 관계
    • 양 테이블에서 같은 기본키를 공유할 수 있는 유일한 경우
    • 폰 번호는 한 명의 user와 연결, 한 명의 user는 하나의 폰 번호와 연결
     

 

  • 1대 N관계
    • 1명의 user는 여러개의 폰 번호를 가질 수 있고, 여러개의 폰 번호는 1명의 user를 가르킬 수 없음
     

  • N대 M관계
    • 1명의 고객은 여러 개의 여행상품을 구매할 수 있고, 1개의 여행 상품은 여러 개의 고객에 의해 구매될 수 있음
    • N대 M관계는 연결 테이블을 이용하여 표현
     

 

참여의 종류

테이블 대행사, 고객 사이에 관계가 있다고 할 때

  • 강제 : 고객 테이블에 새 고객을 삽입하기 전에, 대행사가 반드시 존재해야 하는 경우
  • 선택 : 고객 테이블에 새 고객을 삽입하기 전에, 대행사가 필요 없는 경우

 

데이터 무결성

  • 데이터 베이스 내의 데이터의 유효성, 일관성, 정확성 의미
  • 테이블 무결성 : 중복된 레코드 X, 필드가 유일하며 NULL이 아닌 것
  • 필드 무결성 : 필드가 값이 일관성 있고 정확한 것
  • 관계 무결성 : 관계가 정확하고, 관계를 맺은 테이블이 동기화 되는 것(삽입, 삭제, 수정 시)
  • 업무 규칙 : 데이터 베이스 내의 제약 또는 규제

 

데이터 베이스를 적절하게 설계하는 것은 어렵지 않다. 시간이 오래 걸릴 뿐 인내심을 가지고 지름길을 찾지 말아야 한다.

 

데이터 베이스 설계 단계

  1. 임무 명세와 임무 목표 정의
    • 임무 명세 : 데이터 베이스의 목적
    • 임무 목표 : 데이터 베이스의 데이터에 대해 사용자들이 수행하는 일반적인 작업을 나타내는 문장들
  2. 현재 데이터 베이스 분석하기(존재한다면)
    • 면담을 통해 관리자가 원하는 데이터 요구 사항 식별
    • 현재 데이터를 수집하고 표현하는 방법 검토
  3. 데이터 구조 만들기
    • 테이블과 필드 정의
    • 기본 키 설정
    • 필드 명세(분명하고 자세하게) 설정
  4. 테이블 관계 설정
    • 기본 키와 외래 키를 이용하여 관계 설정
  5. 업무 규칙 결정 및 정의
    • 데이터 베이스 제약 결정
  6. 뷰 설정
    • 데이터로 작업하는 다양한 방법을 식별 후 뷰 설정
  7. 데이터 베이스 무결성 검토
    • 테이블 검토
    • 필드 명세 검토
    • 관계의 유효성 검토
    • 업무 규칙 검토

임무 명세와 임무 목표 정의

임무 명세 : 데이터 베이스의 목적을 작성하는 것

  • 뉴 스타즈 텔런트 대행사 데이터베이스의 목적은 우리가 생성하는 데이터를 관리하고, 고객들에게 제공하는 약속 서비스와 연예인들에게 제공하는 관리 서비스를 지원하는 정보를 제공하기 위한 것이다.

→ 장황하거나, 목적이 불분명하거나, 여러가지 구체적인 작업을 설명하면 안됨

 

임무 목표 : 데이터베이스에서 관리되는 데이터에 의해 지원되는 일반적인 작업들을 나타내는 문장들

  • 우리는 완전한 환자 주소를 관리할 필요가 있다.
  • 우리는 모든 고객 판매를 추적할 필요가 있다.

→ 하나의 작업만 정의, 불필요한 세부사항 포함 X

 

현재 데이터 베이스 분석하기

  • 같은 이름, 특성을 가진 필드(주제) 정제
    • 같은 특성을 가진다면 하나만 남기고 삭제
    • 중복된 특성이지만 다른 주제에 포함 된다면 이름을 바꿈
    • → 테이블의 주제에 맞게 변경
  • 테이블인지이 필드인지 구분
    • 특정 주제의 특성 → 필드
    • 어떤 것의 집합을 나타내는 것 → 테이블
    • 더 작은 조각들로 쪼개질 수 있는 것 → 테이블
  • 계산된 필드 목록은 제거하고 별도의 목록으로 만듦
    • 문자열 연결, 수학 연산식을 값으로 갖는 것
    • 평균연령, 할인 금액, 고객 수, 금액, 총계, 합계 등..

→ 주제 및 특성 목록(예비 필드, 계산된 필드)를 만듦

 

테이블 구조 설정하기

데이터 베이스 테이블 : 각각의 주제를 나타냄, 주제를 설명하는 특성을 나타내는 필드로 구성

예비 테이블 목록 정의하기

  • 주제 목록 : 사용자와 면담을 수행하는 동안 만든 것
  • 예비 필드 목록 : 임무 명세만 보고 객관적으로 만든 것

테이블 정제

  • 이중 항목 해소 : 나타내는 주제에 따라 제거 혹은 이름 변경
  • 같은 주제를 나타내는 항목 해소
  • 주제 목록과 예비 테이블 목록 통합

최종 테이블 목록 정의하기

  • 테이블, 필드 이름 설정 규칙
    • 유일하고 애매하지 않고 설명적이게
    • 주제를 명확하게
      • 전화번호x → 집 전화번호, 회사 전화번호
      • 주소x → 고객 주소, 공급자 주소
    • 필요한 최소 개수의 단어 사용 (다용도 탈것 장비 관리x → 장비)
    • 파일, 레코드, 테이블과 같은 단어 사용 금지
    • 테이블 : 약어 사용 금지, 필드 : 의미있고, 이해가능하다면 적절히 사용
    • 데이터를 제한하는 단어 사용 금지 (양주 지역 직원, 포천 지역 직원)
    • 이름에 “그리고, 또는, /, &, 기타” 사용 금지
    • 테이블은 복수형, 필드는 단수형이라고 생각
    • 테이블 설명 작성하기
      • 테이블의 정의
      • 테이블이 왜 중요한지

 

필드 정제하기

  • 필드의 필수 요소
    • 테이블의 특정한 주제를 나타냄
    • 다중 값 필드 안 됨, 하나의 값만 포함 ex) 전화번호 - 1234, 1245, 9437, 3869 안 됨
    • 다중 부분 필드 안 됨 ex) 필드 이름 - 이름과 성
    • 계산되거나 연결된 값 안 됨 → 필드가 다른 필드의 값에 의존하면 안 됨

 

'DB' 카테고리의 다른 글

데이터베이스(4)  (0) 2024.05.13
데이터베이스(3)  (0) 2024.05.13
데이터베이스(1) - 용어  (1) 2024.05.09
용어 1  (4) 2023.05.08
관계형 데이터 베이스  (0) 2023.05.07