본문 바로가기

자격증/정보처리기사 - 필기

데이터베이스 구축 - 논리 데이터베이스 설계

728x90

데이터 베이스

< 설계 시 고려사항 >

● 무결성  ● 데이터베이스 확장  ● 일관성  ● 회복  ● 보안  ● 효율성

< 설계 순서 >

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을 이용하여 내용 검색 가능

● 갱신 : 사용자가 변화를 주면 시스템이 자동으로 갱신

 

데이터 디렉토리 : 시스템만 접근 가능