키 : 독특한 역할을 수행하는 특별한 필드
- 기본키 (Primary Key)
- 특정 레코드를 유일하게 구별할 수 있는 속성
- 각각의 테이블은 반드시 기본키를 가져야 함
- 유일하게 식별되고, 중복되지 않아야 하며, NULL값을 가질 수 없음
- 외래키 (Foreign Key)
- 테이블 사이의 관계를 설정할 때 사용
- 참조 무결성 : 외래키의 값이 외래키가 참조하는 기본키의 값과 반드시 일치해야 함
- 첫번째 테이블로부터 기본키의 복사본을 만든 후 두 번째 테이블에 포함시킨 것 → 기본키 ≒ 외래키
인덱스
데이터 베이스에서 검색 속도 향상과 같은 데이터 처리를 향상시키기 위해 만든 물리적인 자료구조
관계 : 테이블 쌍 사이의 연결
- 첫 번째 테이블의 레코드를 두 번째 테이블의 레코드와 연관 시킬 수 있는 것
- 1대1 관계
- 양 테이블에서 같은 기본키를 공유할 수 있는 유일한 경우
- 폰 번호는 한 명의 user와 연결, 한 명의 user는 하나의 폰 번호와 연결
- 1대 N관계
- 1명의 user는 여러개의 폰 번호를 가질 수 있고, 여러개의 폰 번호는 1명의 user를 가르킬 수 없음
- N대 M관계
- 1명의 고객은 여러 개의 여행상품을 구매할 수 있고, 1개의 여행 상품은 여러 개의 고객에 의해 구매될 수 있음
- N대 M관계는 연결 테이블을 이용하여 표현
참여의 종류
테이블 대행사, 고객 사이에 관계가 있다고 할 때
- 강제 : 고객 테이블에 새 고객을 삽입하기 전에, 대행사가 반드시 존재해야 하는 경우
- 선택 : 고객 테이블에 새 고객을 삽입하기 전에, 대행사가 필요 없는 경우
데이터 무결성
- 데이터 베이스 내의 데이터의 유효성, 일관성, 정확성 의미
- 테이블 무결성 : 중복된 레코드 X, 필드가 유일하며 NULL이 아닌 것
- 필드 무결성 : 필드가 값이 일관성 있고 정확한 것
- 관계 무결성 : 관계가 정확하고, 관계를 맺은 테이블이 동기화 되는 것(삽입, 삭제, 수정 시)
- 업무 규칙 : 데이터 베이스 내의 제약 또는 규제
데이터 베이스를 적절하게 설계하는 것은 어렵지 않다. 시간이 오래 걸릴 뿐 인내심을 가지고 지름길을 찾지 말아야 한다.
데이터 베이스 설계 단계
- 임무 명세와 임무 목표 정의
- 임무 명세 : 데이터 베이스의 목적
- 임무 목표 : 데이터 베이스의 데이터에 대해 사용자들이 수행하는 일반적인 작업을 나타내는 문장들
- 현재 데이터 베이스 분석하기(존재한다면)
- 면담을 통해 관리자가 원하는 데이터 요구 사항 식별
- 현재 데이터를 수집하고 표현하는 방법 검토
- 데이터 구조 만들기
- 테이블과 필드 정의
- 기본 키 설정
- 필드 명세(분명하고 자세하게) 설정
- 테이블 관계 설정
- 기본 키와 외래 키를 이용하여 관계 설정
- 업무 규칙 결정 및 정의
- 데이터 베이스 제약 결정
- 뷰 설정
- 데이터로 작업하는 다양한 방법을 식별 후 뷰 설정
- 데이터 베이스 무결성 검토
- 테이블 검토
- 필드 명세 검토
- 관계의 유효성 검토
- 업무 규칙 검토
임무 명세와 임무 목표 정의
임무 명세 : 데이터 베이스의 목적을 작성하는 것
- 뉴 스타즈 텔런트 대행사 데이터베이스의 목적은 우리가 생성하는 데이터를 관리하고, 고객들에게 제공하는 약속 서비스와 연예인들에게 제공하는 관리 서비스를 지원하는 정보를 제공하기 위한 것이다.
→ 장황하거나, 목적이 불분명하거나, 여러가지 구체적인 작업을 설명하면 안됨
임무 목표 : 데이터베이스에서 관리되는 데이터에 의해 지원되는 일반적인 작업들을 나타내는 문장들
- 우리는 완전한 환자 주소를 관리할 필요가 있다.
- 우리는 모든 고객 판매를 추적할 필요가 있다.
→ 하나의 작업만 정의, 불필요한 세부사항 포함 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 |