▶ 070 데이터베이스 설계
데이터베이스 설계 시 고려사항
- 무결성(정확성) : 삽입, 삭제 갱신 등의 연산 후에도 데이터베이스에 저장된 데이터가 정해진 제약조건을 항상 만족해야 함
- 일관성
- 회복
- 보안
- 효율성 : 응답시간의 단축, 시스템의 생산성, 저장공간의 최적화 등이 가능해야 함
- 데이터베이스 확장
데이터베이스 설계 순서 / 중요★
1. 요구 조건 분석
데이터베이스를 사용할 사람들로부터 필요한 용도를 파악하는 것
- 데이터베이스 사용자에 따른 수행 업무와 필요한 데이터의 종류, 용도, 처리 형태, 흐름, 제약 조건 등을 수집
- 수집된 정보를 바탕으로 요구 조건 명세 작성
2. 개념적 설계(정보 모델링, 개념화)
정보의 구조를 얻기 위하여 현실 세계의 무한성과 계속성을 이해하고, 다른 사람과 통신하기 위하여 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정
- 개념 스키마 모델링, 트랜잭션 모델링, E-R 다이어 그램
3. 논리적 설계(데이터 모델링)
현실 세계에서 발생하는 자료를 컴퓨터가 이해하고 처리할 수 있는 물리적 저장장치에 저장할 수 있도록 변환하기 위해 특정 DBMS가 지원하는 논리적 자료 구조로 변환시키는 과정
- 논리 스키마 설계, 트랜잭션 인터페이스 설계, 관계형 DB - TABLE / 계층형 DB - Tree / 망형 DB - Graph 설계
4. 물리적 설계(데이터 구조화)
논리적 설계 단계에서 논리적 구조로 표현된 데이터를 디스크 등의 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정
- 데이터가 컴퓨터에 저장
5. 구현
논리적 설계 단계와 물리적 설계 단계에서 도출된 데이터베이스 스키마를 파일로 생성하는 과정
- DBMS의 DDL을 이용해 데이터베이스 파일 생성
▶ 071 데이터 모델의 개념
데이터 모델
현실 세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화하여 체계적으로 표현한 개념적 모형
데이터 모델의 구성 요소 / 중요★
- 개체(Entity) : 데이터베이스에 표현하려는 것, 사람이 생각하는 개념이나 정보 단위 같은 현실 세계의 대상체
- 속성(Attribute) : 데이터의 가장 작은 논리적 단위, 파일 구조상의 데이터 항목 또는 데이터 필드에 해당
- 관계(Relationship) : 개체 간의 관계 또는 속성 간의 논리적인 연결 의미
데이터 모델에 표시할 요소 / 중요★
- 구조(Structure) : 논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질 표현
- 연산(Operation) : DB에 저장된 실제 데이터를 처리하는 작업에 대한 명세, 데이터베이스를 조작하는 기본 도구
- 제약 조건(Constraint) : 실제 데이터의 논리적인 제약 조건
데이터 모델 종류
- 개념적 데이터 모델(정보 모델)
- 논리적 데이터 모델 : 관계 모델, 계층 모델, 네트워크 모델로 구분
- 물리적 데이터 모델
▶ 072 데이터 모델의 구성 요소 - 개체(Entitiy)
개체
데이터베이스에 표현하려는 것, 사람이 생각하는 개념이나 정보 단위 같은 현실 세계의 대상체
ex) 다음은 교수번호, 성명, 전공, 소속으로 구성된 교수 개체이다.
- 속성 : 개체가 가지고 있는 특성 - 성명, 전공, 소속, 교수번호
- 개체 인스턴스 : 개체를 구성하고 있는 각 속성들이 값을 가져 하나의 개체를 나타내는 것, 어커런스(Occurrence)라고도 함
개체의 특성
- 실세계에 독립적으로 존재하는 유형, 무형의 정보로 서로 연관된 몇개의 속성으로 구성
- 파일 시스템의 레코드에 대응하는 것
- 영속적으로 존재하는 개체의 집합
- 독립적으로 존재하거나 그 자체로서도 구별 가능
- 유일한 식별자에 의해 식별 가능
- 다른 개체와 하나 이상의 관계가 있음
개체 선정 방법
- 실제 업무를 담당하고 있는 담당자와 인터뷰함
- 업무 기술서 이용
- 자료 흐름도(DFD)를 통해 업무 분석을 수행했을 경우 자료 흐름도의 자료 저장소(Data Store)를 이용
- 현업의 장표 활용
*자료 흐름도(DFD) : 요구사항 분석에서 자료의 흐름 및 변환 과정과 기능을 도형 중심으로 기술하는 방법
*자료 저장소(Data Sore) : 시스템에서의 자료 저장소(파일, 데이터베이스)를 의미
▶ 073 데이터 모델의 구성 요소 - 속성(Attribute)
속성
데이터베이스를 구성하는 가장 작은 논리적 단위
속성의 특성
- 파일 구조상의 데이터 항목 또는 데이터 필드에 해당
- 개체를 구성하는 항목
- 개체의 특성을 기술
- 속성의 수를 디그리(Degree) 또는 차수라고 함
속성의 종류
속성의 특성과 개체 구성 방식에 따라 분류 할 수 있음
⦁ 속성의 특성에 따른 분류
기본 속성 (Basic Attribute) |
업무 분석을 통해 정의한 속성 - 속성 중 가장 많고 일반적 - 업무로부터 분석한 속성이라도 업무상 코드로 정의한 속성은 기본 속성에서 제외 |
설계 속성 (Designed Attribute) | 원래 업무상 존재하지 않고 설계 과정에서 도출해내는 속성 - 업무에 필요한 데이터 외에 데이터 모델링을 위해 업무를 규칙화하려고 속성을 새로 만들거나 변형하여 정의하는 속성 |
파생 속성 (Derived Attribute) |
다른 속성으로부터 계산이나 변형 등의 영향을 받아 발생하는 속성 - 파생 속성은 되도록 적은 수로 정의 |
⦁ 개체 구성 방식에 따른 분류
기본키 속성 (Primary Key Attribute) | 개체의 속성을 식별할 수 있는 속성 |
외래키 속성 (Foreign Key Attribute) | 다른 개체와의 관계에서 포함된 속성 |
일반 속성 | 개체에 포함되어 있고 기본키, 외래키에 포함되지 않은 속성 |
속성 후보 선정 원칙
- 원시 속성으로 판단되는 속성 후보는 버리지 않는다
*원시속성 : 다른 속성을 통해 다시 재현할 수 없는 속성
속성명 지정 원칙
- 해당 업무에서 사용하는 용어로 지정
- 서술형 X, 약어 제한
- 개체명은 속성명으로 사용할 수 없음
- 개체에서 유일하게 식별 가능하도록 지정
▶ 074 데이터 모델의 구성 요소 - 관계(Relationship)
관계
개체와 개체 사이의 논리적인 연결을 의미
- 관계에는 개체 간의 관계와 속성간의 관계가 있음
관계의 형태
관계의 종류
- 종속 관계(Dependent Relationship) : 두 개체 사이의 주종 관계를 표현한 것으로, 식별 관계와 비식별 관계가 있음
- 중복 관계(Redundant Relationship) : 두 개체 사이에 2번 이상의 종속 관계가 발생하는 관계
- 재귀 관계(Recursive Relationship) : 개체가 자기 자신과 관계를 갖는 것, 순환 관계라고도 함
- 배타 관계(Exclusive Relationship) : 개체의 속성이나 구분자를 기준으로 개체의 특성을 분할하는 관계, 배타 AND 관계와 배타 OR 관계로 구분
☞ 식별관계와 비식별관계
식별 관계 : 개체 A,B 사이의 관계에서 A 개체의 기본키가 B 개체의 외래키이면서 동시에 기본키가 되는 관계
비식별 관계 : 개체 A,B 사이의 관계에서 A 개체의 기본키가 B 개체의 비기본키 영역에서 외래키가 되는 관계
▶ 075 식별자(Identifier)
식별자
하나의 개체 내에서 각각의 인스턴스를 유일하게 구분할 수 있는 구분자, 모든 개체는 한 개 이상의 식별자를 반드시 가져야 함
- 식별자는 다음과 같이 분류
분류 | 식별자 |
대표성 여부 | 주 식별자(Primary Identifier), 보조 식별자(Alternate Identifier) |
스스로 생성 여부 | 내부 식별자(Internal Identifier), 외부 식별자(Foreign Identifier) |
단일 속성 여부 | 단일 식별자(Single Identifier), 복합 식별자(Composite Identifier) |
대체 여부 | 원조 식별자(Original Identifier), 대리 식별자(Surrogate Identifier) |
1. 주 식별자 / 보조 식별자
두 식별자 모두 개체를 유일하게 식별할 수 있어야 함
주 식별자 : 개체를 대표하는 유일한 식별자
- 하나의 개체에 한개만 존재
- 물리적 테이블에서 기본키로 지정되어 사용
☞ 주 식별자의 4가지 특성
유일성, 최소성, 불변성, 존재성
보조 식별자 : 주 식별자를 대신하여 개체를 식별할 수 있는 속성
- 하나의 개체에 한개 이상 존재
- 물리적 테이블에서 유니크 인덱스로 지정되어 사용
2. 내부 식별자 / 외부 식별자
내부 식별자 : 개체 내에서 스스로 만들어지는 식별자
외부 식별자 : 다른 개체와의 관계에 의해 외부 개체의 식별자를 가져와 사용하는 식별자
- 자신의 개체에서 다른 개체를 찾아가는 연결자 역할
3. 단일 식별자 / 복합 식별자
단일 식별자 : 주 식별자가 한 가지 속성으로만 구성된 식별자
복합 식별자 : 주 식별자가 두 개 이상의 속성으로 구성된 식별자
4. 원조 식별자 / 대리 식별자
원조 식별자 : 업무에 의해 만들어지는 가공되지 않은 원래의 식별자, 본질 식별자
대리 식별자 : 주 식별자의 속성이 두 개 이상인 경우 속성들을 하나의 속성으로 묶어 사용 하는 식별자, 인조 식별자
5. 후보 식별자
개체에서 각 인스턴스를 유일하게 식별할 수 있는 속성 또는 속성 집합
- 하나의 개체에는 한 개 이상의 후보 식별자가 있고, 이 중 개체의 대표성을 나타내는 식별자를 주 식별자로, 나머지는 보조 식별자로 지정
- 널 값이 될 수 없음
▶ 076 E-R(개체-관계) 모델
E-R(Entity-Relationship, 개체-관계) 모델
개념적 모델의 가장 대표적인 것, 1976년 피터 첸(Peter Chen)에 의해 제안됨
- E-R 다이어그램으로 표현하며, 1:1, 1:N, N:M 등의 관계 유형을 제한 없이 나타낼 수 있음
E-R 다이어그램
E-R 모델의 기본 아이디어를 이해하기 쉽게 기호를 사용하여 시각적으로 표현한 그림
- E-R 다이어그램 표기법에는 피터 첸 표기법, 정보 공학 표기법, 바커 표기법 등이 있음
1. 피터 첸 표기법
ex)
- 개체 : 고객, 주문서
- 고객의 속성 : 고객번호, 성명, 주소
- 주문서의 속성 : 주문번호, 품명, 수량, 금액
- 밑줄친 속성은 기본키
2. 정보 공학 표기법(Information Engineering Notation)
1981년에 클리프 핀겔쉬타인과 제임스 마틴이 공동 개발
⦁ 관계 표기 기호