데이터 베이스
< 설계 시 고려사항 >
● 무결성 ● 데이터베이스 확장 ● 일관성 ● 회복 ● 보안 ● 효율성
< 설계 순서 >
1. 요구 조건 분석 : 요구 조건 명세 작성
2. 개념적 설계 : 개념 스키마( DBMS에 독립적 ), 트랜잭션 모델링, E-R 모델
3. 논리적 설계 : 논리 스키마( DBMS에 종속적 ), 트랜잭션 인터페이스 설계
4. 물리적 설계 : 파일 조직 방법, 저장 방법, 파일 접근 방법 선정
5. 구현 : DDL로 스키마 작성
데이터 모델 : 현실세계 정보를 컴퓨터 세계 정보로 기술
< 구성요소 >
● 개체( Entity )
- 레코드에 대응 - 정보 제공
- 독립적으로 존재하거나 그 자체로서도 구별 가능
- 식별자에 의해 식별 가능 - 다른 개체와 하나 이상의 관계
<< 개체 선정 방법 >>
- 업무 기술서 이용 - 담당자와 인터뷰
- 장부와 전표 이용 - 자료 흐름도( DFD ) 이용 시 자료 저장소 이용
- 업무 프로세스 재설계( BPR ) 재정의 시 관련 개체 찾음
<< 개체명 지정 방법 >>
- 해당 업무에서 사용하는 용어로 지정
- 약어 사용 제한 - 단수 명사 사용
● 속성 : DB를 구성하는 가장 작은 논리적 단위
- 데이터 항목/데이터 필드에 해당 - 개체를 구성하는 항목
- 개체의 특성 기술 - 디그리( 차수 ) : 속성의 수
<< 분류 >>
1. 특성에 따른 분류
- 기본 속성 - 설계 속성 - 파생 속성 : 다른 속성으로부터 영향 받아 발생
2. 개체 구성 방식에 따른 분류
- 기본키 속성 : 개체를 식별할 수 있는 속성
- 외래키 속성 : 다른 개체와의 관계에서 포함된 속성
- 일반 속성 : 기본키, 외래키에 포함되지 않은 속성
<< 속성명 지정 원칙 >>
- 서술형 X - 약어 사용 제한 - 개체명은 속성명으로 사용 X
● 관계 : 논리적 연결
<< 관계 종류 >>
- 종속 관계 : 두 개체 사이의 주/종 관계
- 중복 관계 : 두 개체 사이에 2번 이상의 종속 관계 발생
- 재귀 관계 : 개체가 자기 자신과 관계 가짐
- 배타 관계 : 개체의 속성이나 구분자를 기준으로 개체의 특성 분할
< 표시할 요소 >
● 구조 : 개체 타입간 관계 ● 연산 ● 제약 조건 : 데이터의 논리적 제약 조건
식별자 : 하나의 개체 내에서 각각의 인스턴스를 구분, 모든 개체는 한 개 이상의 식별자를 반드시 가져야 함
< 분류 >
● 대표성 여부
1. 주 식별자
- 개체를 대표하는 유일한 식별자
- 한 개만 존재
2. 보조 식별자
- 주 식별자를 대신하여 개체 식별
- 한 개 이상 존재
● 스스로 생성 여부
1. 내부 식별자
- 스스로 만들어짐
2. 외부 식별자
- 다른 개체와의 관계에 의해 외부 개체의 식별자를 가져와 사용
● 단일 속성 여부
1. 단일 식별자
- 한 가지 속성으로 구성
2. 복합 식별자
- 두 개 이상의 속성으로 구성
● 대체 여부
1. 원조 식별자
- 업무에 의해 만들어지는 가공되지 않은 원래의 식별자
2. 대리 식별자
- 주 식별자의 속성이 두 개 이상인 경우 속성들을 하나의 속성으로 묶어 사용
후보 식별자
● 각 인스턴스를 유일하게 식별 가능
● 널 값 X
● 후보 식별자의 데이터는 자주 변경되지 않아야 한다.
E-R 모델
● 무질서한 데이터를 개념적인 논리 데이터로 표현하는 방법
● 데이터를 개체, 관계, 속성으로 묘사
● E-R 다이어그램으로 표현
E-R 다이어그램
● E-R 모델을 기호를 사용하여 시각적으로 표현
● E-R 모델을 그래프 방식으로 표현
● 뷰들을 하나로 단일화
< 표기법 >
1. 피터 첸 표기법
● 사각형 – 개체 ● 마름모 – 관계 ● 타원 – 속성 ● 이중 타원 – 다중 값 속성
● 밑줄 타원 – 기본키 속성
2. 정보 공학 표기법
3. 바커 표기법
관계형 데이터 모델 : Table 이용
● 기본키와 외래키로 데이터 관계 표현
관계형 데이터베이스
● 개체나 관계를 모두 릴레이션( Table )으로 표현 ● 간결하고 다른 데이터베이스로의 변환 용이
● 성능이 떨어짐
릴레이션
● 튜플 = 레코드
- 행 - 속성의 모임 - 카디널리티( 기수 ) = 튜플의 수
● 속성 = 애트리뷰트
- 가장 작은 논리적 단위 - 개체의 특성 기술
- 디그리( 차수 ) : 속성의 수 - 열
● 도메인
- 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자 값들 집합
< 특징 >
● 튜플 사이에는 순서 X ● 릴레이션은 시간에 따라 변함 ● 속성의 값은 원자값 만 지정
제약 조건 : 데이터의 정확성 보장을 위해 키를 이용하여 입력되는 데이터에 제한을 줌
키 : 튜플들을 서로 ㅜ분할 수 있는 기준이 되는 애트리뷰트
● 후보 키( Candidate Key ) : 기본키로 사용할 수 있는 속성
- 모든 릴레이션에는 반드시 하나 이상의 후보키 존재 - 유일성/최소성 만족
-> 유일성 : 하나의 키로 하나의 튜플만 유일하게 식별
-> 최소성 : 모든 레코드들을 유일하게 식별하는데 꼭 필요한 속성으로만 구성
● 기본 키 : 중복된 값 가질 수 없음
- NULL 값 가질 수 없다.
● 대체 키 : 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키
● 슈퍼 키 : 유일성은 만족하지만 최소성은 만족 X
● 외래 키 : 다른 릴레이션의 기본키를 참조하는 속성/속성들의 집합
- 참조 릴레이션의 기본키에 없는 값은 입력 X
무결성 : 저장된 데이터 값과 실제 값이 일치하는 정확성
● 개체 무결성 : 기본키를 구성하는 어떤 속성도 NULL 값이나 중복 값을 가질 수 없다.
● 도메인 무결성 : 속성 값이 정의된 도메인에 속한 값이어야 한다.
● 참조 무결성 : 외래키 값은 NULL 이거나 참조 릴레이션의 기본키 값과 동일
● 사용자 정의 무결성 : 속성 값들이 사용자가 정의한 제약 조건에 만족해야 함
< 무결성 강화 >
1. 애플리케이션 : 무결성 조건 검증 코드 추가
2. 데이터페이스 트리거 : 트리거 이벤트에 무결성 조건을 실행하는 절차형 SQL 추가
3. 제약 조건 설정
관계 대수 : DB에서 원하는 정보와 그 정보를 검색하기 위해 어떻게 유도하는가를 기술하는 절차적 언어
● 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서 명시
-> 순수 관계 연산자 : Select, Project, Join, ...
-> 일반 집합 연산자 : UNION, INTERSECTION, ...
< 연산자 >
1. Select : 선택조건을 만족하는 튜플 구함, 시그마( σ ) 사용
2. Project : 속성 리스트에 제시된 속성 값만 추출, 파이( π ) 사용
3. Join : 공통 속성을 중심으로 두 릴레이션을 하나로 합쳐 새로운 릴레이션 만듬, ⋈ 사용
-> 자연 조인 : 조인 조건이 =일 때 동일한 속성이 두번 나타나는데 이중 중복된 속성을 제거하여 같은 속성을 한 번만 표시하는 방법
ex. 성적 ⋈( no = no ) 학적부 : 동일한 속성 두번 나타남
성적 ⋈( no ) 학적부 : 같은 속성 한 번만 표현
4. Division : 두개의 릴레이션 A, B가 있을 때 A의 속성이 B의 속성 값을 모두 가진 튜플에서 B가 가진 속성을 제외한 속성만 구하는 연산, 나누기 기호 사용
5. 합집합( UNION )
6. 교집합( INTERSECTION )
7. 차집합( DIFFERENCE )
8. 교차곱( CARTESIAN PRODUCT ) : 차수( 덧셈 ), 카디널리티( 곱셈 )
관계 해석 : 수학의 Predicate Calculus( 술어 해석 )에 기반
● 원하는 정보가 무엇이라는 것만 정의
● 튜플 관계해석과 도메인 관계해석이 있다.
정규화 : 더 작은 속성의 세트로 쪼개 바람직한 스키마로 만드는 과정
● 논리적 설계 단계에서 수행 ● 정규화 수준 ↑ -> 데이터의 정확성 ↑, 물리적 접근 복잡, 조회 성능 ↓
< 목적 >
● 데이터 구조 안정성/무결성 ● 자료 저장 공간 최소화
● 데이터 모형 단순화 ● 개체와 속성의 누락 여부 확인
< 단계 >
● 1 정규형 : 도메인 원자값
● 2 정규형 : 부분적 함수 종속 제거
-> 완전 종속 : 종속자가 기본키에만 종속
-> 부분 종속 : 종속자가 기본키 속성 중 일부만 종속
● 3 정규형 : 이행적 함수 종속 제거
-> 이행적 종속 : A -> B이고 B -> C 일 때, A -> C
● BCNF : 결정자면서 후보키 아닌 것 제외( 데이터의 중복성 배제 )
● 4 정규형 : 다치 종속
-> 다치 종속 : A, B, C 속성일 때 복합 속성( A, C )에대응하는 B 값의 집합이 A 값에만 종속되고 C 값에는 무관
● 5 정규형 : 조인 종속 제거
-> 조인 종속 : 하나의 릴레이션을 여러개의 릴레이션으로 분해하였다가, 다시 조인 시 데이터 손실이 없고 필요없는 데이터가 생기는 것
이상( Anomaly ) : 데이터들이 불필요하게 중복되어 릴레이션 조작 시 예기치 못한 현상 발생
● 삽입 이상 : 데이터 삽입 시 원하지 않은 값도 삽입
● 삭제 이상 : 튜플 삭제 시 상관 없는 값들도 함께 삭제
● 갱신 이상 : 튜플 속성 값 갱신 시 일부 튜플의 정보만 갱신되어 정보 모순 발생
시스템 카탈로그 : 시스템 자체에 관련 있는 객체에 관한 정보를 포함하는 시스템 DB
● DBMS에서 지원하는 모든 데이터 객체에 대한 정의나 명세에 관한 정보 유지 관리
● 데이터 사전이라고 함
● 메타 데이터 : 시스템 카탈로그에 저장된 정보
● 일반 이용자도 SQL을 이용하여 내용 검색 가능
● 갱신 : 사용자가 변화를 주면 시스템이 자동으로 갱신
데이터 디렉토리 : 시스템만 접근 가능
'자격증 > 정보처리기사 - 필기' 카테고리의 다른 글
데이터베이스 구축 - SQL 응용 (0) | 2020.02.18 |
---|---|
데이터베이스 구축 - 물리 데이터베이스 설계 (0) | 2020.02.16 |
소프트웨어 개발 - 인터페이스 구현 (1) | 2020.02.07 |
소프트웨어 개발 - 애플리케이션 테스트 관리 (0) | 2020.02.06 |
소프트웨어 개발 - 제품 SW 패키징 (0) | 2020.02.05 |