반응형
도서 '가장 쉬운 데이터베이스 설계 책'을 보고 책 내용과 그 이외의 부족한 부분을 채워가며 공부한 내용입니다.
1. 사례를 통한 데이터베이스 설계
- Case
- 마이크의 자전거 가게
- 시애틀 중심가에서 그리 멀지 않은 그린레이크라는 작은 교외에 위치한 자전거 가게
- 개업 2 달, 꾸준한 성장
- 매출을 매일 종이로 정리
- 인덱스 카드에 단골 손님에 대한 정보를 적음.
- 마이크의 자전거 가게
데이터베이스 설계 프로세스의 첫 번째 단계
임무 목표와 임무 명세 정의
- 임무 명세 작성
- 특정 업무를 명확하게 묘사하는 문장이나 절이 없어야 함(단순 명료해야함)
- 데이터 베이스의 구체적인 목표가 필요
- 임무 명세를 만들기 위해 사용할 수 있는 예제 질문
- 새로운 고객에게 조직의 목적을 어떻게 설명하겠습니까?
- 여러분 조직의 목적은 무엇이라 말하겠습니까?
- 여러분 조직의 주요 기능은?
- 여러분 조직이 수행하는 것을 어떻게 설명하겠습니까?
- 임무 목표 정의
- 데이터베이스에서 관리되는 데이터가 지원하는 일반적인 작업들을 표현하는 문장
- 각 임무는 단독 작업(하나의 일반적인 작업을 나타내야함)
- 이해하기 쉽도록 잘 정의
- 임무 목표를 만들기 위해 사용할 수 있는 예제 질문
- 어떤 종류의 작업을 매일 수행하시나요?
- 여러분의 업무설명을 어떻게 정의하나요?
- 여러분이 작업을 할 때 어떤 종류의 데이터를 사용하나요?
- 어떤 종류의 보고서/이력정보를 작성/관리하나요?
- Case 적용
- 임무 명세 작성
- 마이크의 자전거 가게 데이터 베이스의 목적은 우리의 소매 사업과 고객 서비스 활동을 지원할 때 필요한 데이터를 관리하기 위함이다.
- 임무 목표 정의
- 재고 정보를 완전하게 관리
- 고객 정보를 완전하게 관리
- 모든 고객 판매 이력을 관리
- 상품 공급자 정보를 완전하게 관리
- 직원 정보를 완전하게 관리
- 임무 명세 작성
데이터베이스 설계 프로세스의 두 번째 단계
기존 데이터베이스 분석
새로운 데이터 베이스 구조에 대한 근거로 현재 데이터베이스 구조를 적용하지 말 것.
- 종이 기반의 데이터베이스
- 종이에 수집되고 저장되며 유지되는 데이터 포함
- 인덱스 카드(단골 손님), 수기, 출력된 보고서, 다양한 견본 양식
- 종이에 수집되고 저장되며 유지되는 데이터 포함
- 기존 데이터베이스
- 5년 이상 사용되어 온 데이터베이스
- 분석 수행
- 데이터가 수집된 방법을 검토
- 어떤 종류의 문서가 사용되는지 확인 후 각 문서들의 견본을 수집
- 데이터를 수집할 때 활요하기 위해 조직에서 프로그램들을 사용하는 견본 화면을 수집(워드...)
- 정보가 표현되는 방법을 검토
- 보고서
- 수기, 타자, 컴퓨터로 만들어진 임의의 문서
- 화면 프레젠테이션(슬라이드 쇼)
- 다양한 주제를 체계적인 방법으로 다루는 일련의 화면으로 구성(MS 파워포인트...)
- 웹 페이지
- 보고서와 같은 방식으로 사용
- 보고서
- 사용자와 관련자와 인터뷰를 진행하는 것
- 사용자가 현재 사용하고 있는 데이터의 종류
- 사용자들이 현재 데이터를 사용하는 방법
- 분석의 처음 두 단계에서 모은 견본 데이터 수집
- 사용자의 일일 작업 시 필요한 정보의 종류
- 데이터가 수집된 방법을 검토
- 특징 식별 기술
- 저는 고객의 이름, 주소, 전화번호, 이메일 주소와 같은 고객정보를 먼저 모두 입력해요. 그리고 고객이 구매하기를 원하는 품목을 입력합니다. 모든 항목을 입력한 후에 총금액을 기록합니다. 또 고객이 팩스 번호와 발송 주소를 가지고 있으면 그 정보도 입력해요
- 사람, 장소, 물건(객체), 사건(특정 시간에 발생하는 무언가)을 표현하는 명사 찾기
- 저는 고객의 이름, 주소, 전화번호, 이메일 주소와 같은 고객정보를 먼저 모두 입력해요. 그리고 고객이 구매하기를 원하는 품목을 입력합니다. 모든 항목을 입력한 후에 총금액을 기록합니다. 또 고객이 팩스 번호와 발송 주소를 가지고 있으면 그 정보도 입력해요
- 전체 필드 목록 편집
- 특징 목록의 검토와 정제
- 같은 이름을 가진 항목 정제
- 같은 특징을 나타내는 항목 정제
- 특성이 나타내는 항목 확인
- 견본에 있는 새로운 특성에 대한 판단
- 특징 목록의 검토와 정제
- Case 적용
- 기존 데이터베이스 분석
- 종이로 데이터의 대부분 관리
- 상품 재고만 스프레드시트로 관리
- 위의 데이터베이스의 견본 수집
- 특정목록 추출
- 예비 필드 목록 작성을 위한 특정목록 정제
- 정리 결과
- 예비 필드 목록
- Birth Date, Employee Name, Employee Address, Employee City, Customer Name, Customer Address, Office Phone, Product Name, Category, Unit Price, Invoice Number, Invoice Date
- 계산된 필드 목록
- Discount Amount, Grand Total, Item Total, Sub Total
- 예비 필드 목록
- 기존 데이터베이스 분석
데이터베이스 설계 프로세스의 세 번째 단계
데이터 구조 생성
- 주제 식별하기
- 주제 목록의 사용
- 중복 항목 해소
- ex) 장비 -> 일반장비, 차량 으로 변경
- 동일한 주제를 나타내는 항목 해소
- 다른 이름을 가지고 있더라도 동일한 주제를 표현하는지 여부 확인
- 주제 목록과 예비 테이블 목록의 항목 결합
- 중복 항목 해소
- 테이블 유형(최종 테이블 목록에서 각 테이블의 유형을 나타내야함)
- 데이터 테이블
- 조직에서 중요한 주제를 나타내며 데이터베이스에서 제공하는 정보의 기본 토대
- 연결 테이블
- 다대다 관계의 두 테이블의 연결을 설정
- 부분 집합 테이블
- 특정 데이터 테이블과 연관되어 있으며 데이터테이블의 주제를 매우 구체적으로 설명하는 필드들을 포함
- 검증 테이블
- 비교적 정적인 데이터를 포함하며 데이터 무결성의 중요한 구성요소
- 데이터 테이블
- 테이블 명세서 작성
- 최종 테이블 목록에 기록하는 테이블의 또 다른 측면
- 테이블을 정의하는 문장 포함
- 조직에 왜 중요한지 설명하는 문장 포함
- 명확하고 간결
- 구현 관련 내용 x
- 타 테이블 명세서의 의존적인 명세서 작성 x
- 예제 사용 x
- 최종 테이블 목록에 기록하는 테이블의 또 다른 측면
- 각 테이블에 필드 연결
- 예비 필드 목록에서 필드를 사용해 최종 테이블 목록의 각 테이블에 필드를 지정
- 필드 정제
- 필드 이름 개선
- 이상적인 필드들 사용한 변칙 해소
- 테이블 주제의 고유한 특성을 나타냄
- 단지 하나의 값만 포함
- 더 작은 구성요소로 해체될 수 없음
- 계산되거나 연결된 값 포함 x
- 전체 데이터베이스 구조 안에서 유일
- 다중 부분 필드의 해소
- 둘 이상의 고유한 항목들을 포함하기에 어려움
- 강사 이름 -> 강사 성, 강사 이름 으로 쪼개기
- 다중값 필드의 해소
- 같은 값을 2번 이상 잠재적으로 지정할 수 없음
- 이 필드를 테이블로부터 제거하고 새 테이블을 위한 기초로 사용
- 원래 테이블을 새 테이블과 관계를 맺도록 하기위해, 원래 테이블로부터 필드를 사용
- 새 테이블에 적절한 이름, 종류, 명세서를 할당하고 최종 테이블 목록에 추가
- ex) 강의 범주
- 강의 범주를 기존 테이블에서 제거 후 새 테이블을 위한 기초로 사용
- 관계를 위해 강사 성과 상사 이름을 연결 필드로 사용
- 테이블 구조 정제
- 중복 데이터
- 두 테이블의 관계를 맺는데 필드가 참여한 결과(허용)
- 어떤 필드 또는 테이블에 비정상의 결과로 필드 내에 반복되는 값(허용 x)
- 이중 필드
- 테이블 집합을 서로 연관시키는데 사용, 특정 종류의 값의 중복적인 발생, 보충적인 정보를 위한 필요에 의해 둘 이상의 테이블에 나타나는 필드
- 이상적인 테이블 요소
- 개체 또는 사건일 수 있는 단일 주제를 나타냄
- 기본 키를 가짐
- 다중 부분, 다중값 필드를 포함x
- 계산된 필드들을 포함하지 않음
- 불필요한 이중 필드들을 포함하지 않음
- 중복 데이터
- Case 적용
※ 키의 중요성
- 테이블 내의 각 레코드가 정확하게 식별되도록 보장
- 다양한 종류의 무결성을 설정하고 강화하는 것을 도와줌
- 테이블 관계를 설정하도록 도와줌
후보 키
- 테이블 주제의 단일 인스턴스를 유일하게 식별해주는 하나의 필드 또는 필드 집합
- 다중 부분 필드일 수 없음
- 유일한 값들을 포함
- 널값 포함 불가
- 2개 이상의 필드로 구성된 후보 키는 복합 후보 키라 부름
기본 키
- 후보 키, 복합 후보 키 2개가 다 있다면 후보 키를 선택
- 자신의 이름에 테이블의 이름 일부를 포함하는 후보 키 선택
- 각 테이블은 오직 하나의 기본(주) 키를 가져야 함.
대체 키
- RDBMS 프로그램에서 유용할 수 있음(테이블 내의 특정 레코드를 유일하게 식별하는 대체 수단 제공)
비 키
- 후보, 주, 대체 외래 키로 지정되지 않은 필드
후보 키 = CK
복합 후보 키 = CCK
주 키 = PK
복합 주 키 = CPK
대체 키 = AK or CAK
※ 테이블 수준의 무결성
- 테이블 내에 이중 레코드들이 없다
- 주 키는 테이블 내의 각 레코드들을 배타적으로 식별
- 모든 주 키 값은 유일
- 주 키 값은 널이 아니다
- Case 적용
위의 Case에서 정해진 Table을 구현하기 위해 샘플 데이터를 테이블에 로드함으로써 키들을 테스트
※ 필드 명세
- 필드 수준의 무결성
- 필드의 주체성과 목적이 명확하고 이것이 나타나는 모든 테이블이 적절히 식별
- 데이터베이스 전체에 걸쳐 필드 정의가 일관성
- 필드의 값들이 일관성 있고 유효
- 필드의 값들에 적용될 수 있는 수정, 비교, 연산의 종류가 명확히 식별
- 필드 명세의 분석
- 일반적 요소
- 필드이름, 부모 테이블, 레이블, 명세종류, 원본 명세, 공유, 별칭, 설명
- 물리적 요소
- 데이터 종류, 길이, 소수점 위치, 문자 지원, 입력 마스크, 디스플레이 형식
- 논리적 요소
- 키 종류, 키 구조, 유일성, 널 지원, 갑 입력자, 필요값, 기본값, 값의 범위, 변경 규칙, 비교 허용, 연산 허용
- 일반적 요소
- Case 적용
데이터베이스 설계 프로세스의 네 번째 단계
테이블 관계 연결 및 결정
- 관계의 유형
- 1 대 1
- 1 대 다
- 다 대 다
- Case 적용
참고 자료
1. 마이클 J. 헤르난데즈, DATABASE DESIGN FOR MERE MORTALS, THIRD EDITION(출판지 : Pearson Education, 2013)
반응형
'데이터 베이스' 카테고리의 다른 글
데이터베이스 기본기능 (0) | 2022.05.19 |
---|---|
관계형 데이터 베이스 5 (0) | 2022.05.17 |
관계형 데이터 베이스 3 (0) | 2022.05.16 |
관계형 데이터 베이스 2 (0) | 2022.05.16 |
관계형 데이터 베이스 1 (0) | 2022.05.15 |