728x90
반응형
데이터베이스 설계 순서
개념적 설계(정보 모델링, 개념화)
- 정보의 구조를 얻기 위해 현실 세계의 무한성과 계속성을 이해하고, 다른 사람과 통신하기 위하여 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정
- 개념 스키마 모델링과 트랜션 모델링을 병행 수행
- 요구 분석 단계에서 나온 결과인 요구 조건 명세를 DBMS에 독립적인 ERD로 작성
- DBMS에 독립적인 개념 스키마를 설계
논리적 설계(데이터 모델링)
- 현실 세계에서 발생하는 자료를 컴퓨터가 이해하고 처리할 수 있는 물리적 저장장치에 저장할 수 있도록 변환하기 위해 DBMS가 지원하는 논리적 자료구조로 mapping 시키는 과정
- 개념 세계의 데이터를 필드로 기술된 데이터 타입과 이 데이터 타입들 간의 관계로 표현되는 논리적 구조의 데이터로 모델화
- 개념 스키마를 평가 및 정제하고 DBMS에 따라 서로 다른 논리적 스키마를 설계하는 단계
- 트랜잭션의 인터페이스를 설계
- ex. RDB에서 테이블을 설계하는 단계
물리적 설계(데이터 구조화)
- 논리적 설계 단계에서 논리적 구조로 표현된 데이터를 디스크 등의 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정
- 다양한 데이터베이스 응용에 대해 처리 성능을 얻기 위해 데이터베이스 파일의 저장 구조 및 액세스 경로를 결정
- 저장 레코드의 양식, 순서, 접근 경로, 조회가 집중되는 레코드와 같은 정보를 사용하여 데이터가 컴퓨터에 저장되는 방법을 묘사
- 고려 사항
- 트랜잭션 처리량
- 응답 시간
- 디스크 용량
- 저장 공간의 효율화 등
데이터 모델
현실 세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화하여 체계적으로 표현한 개념적 모형
구성요소
개체 (Entity) |
- 데이터베이스에 표현하려는 것 - 사람이 생각하는 개념이나 정보 단위 같은 현실 세계의 대상체 |
속성 (Attribute) |
- 데이터의 가장 작은 논리적 단위 - 파일 구조상의 데이터 항목 또는 데이터 필드 |
관계 (Relationship) |
- 개체 간의 관계 또는 속성 간의 논리적인 연결 |
구조 (Structure) |
- 논리적으로 표현된 개체 타입들 간의 관계 - 데이터 구조 및 정적 성질을 표현 |
연산 (Operation) |
- 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세 - 데이터베이스를 조작하는 기본 도구 |
제약 조건 (Constraint) |
- 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건 |
ERD(Entity Relationship Diagram)
ER 모델
- 개념적 데이터 모델의 가장 대표적인 것
- 1976년 피터 첸(Peter Chen)에 의해 제안되고 기본적인 구성요소 정립
- 개체 타입(Entity Type)과 이들 간의 관계 타입(Relationship Type)을 이용해 현실 세계를 개념적으로 표현
- 데이터를 개체(Entity), 관계(Relationship), 속성(Attribute)으로 묘사
- 특정 DBMS를 고려한 것은 아님
- 1:1, 1:N, N:M 등의 관계 유형을 제한 없이 나타낼 수 있음
관계형 데이터 모델
가장 널리 사용되는 데이터 모델
2차원적인 표(Table)를 이용해 데이터 상호 관계를 정의하는 DB 구조를 말함
- 파일 구조처럼 구성한 테이블들을 하나의 DB로 묶어서 테이블 내에 있는 속성들 간의 관계를 설정하거나 테이블 간의 관계를 설정
- 기본키(Primary Key)와 이를 참조하는 외래키(Foreign Key)로 데이터 간의 관계를 표현
- 계층 모델과 망 모델의 복잡한 구조를 단순화시킨 모델
- 대표적인 언어는 SQL
- 1:1 , 1:N, N:M 관계를 자유롭게 표현
RDB의 Relation 구조
Relation은 데이터들을 표의 형태로 표현한 것
구조를 나타내는 릴레이션 스키마와 실제 값들인 릴레이션 인스턴스로 구성
- 튜플(Tuple)
- 릴레이션을 구성하는 각각의 행
- 속성의 모임으로 구성
- 파일 구조에서 레코드와 같은 의미
- 튜플의 수 = 카니널리티(Cardinality) or 기수, 대응수
- 속성(Attribute)
- 데이터베이스를 구성하는 가장 작은 논리적 단위
- 파일 구조상의 데이터 항목 또는 데이터 필드에 해당
- 속성은 개체의 특성을 기술
- 속성의 수 = 디그리(Degree) or 차수
- 도메인(Domain)
- 도메인은 하나의 속성이 취할 수 있는 같은 타입의 원자(Atomic) 값들의 집합
- 도메인은 실제 속성 값이 나타날 때 그 값의 합법 여부를 시스템이 검사하는데에도 이용
- ex. 성별 속성의 도메인은 '남', '여' 이외의 값은 입력될 수 없음
릴레이션의 특징
- 한 릴레이션에는 똑같은 튜플이 포함될 수 없음 -> 릴레이션에 포함된 튜플들은 모두 다름
- 한 릴레이션에 포함된 튜플 사이에는 순서가 없음
- 튜플들의 삽입, 삭제 등의 작업으로 인해 릴레이션은 시간에 따라 변함
- 릴레이션 스키마를 구성하는 속성들 간의 순서는 중요하지 않음
- 속성의 유일한 식별을 위해 속성의 명칭은 유일해야 하지만, 속성을 구성하는 값은 동일한 값이 있을 수 있음
- 릴레이션을 구성하는 튜플을 유일하게 식별하기 위해 속성들의 부분집합을 키(Key)로 설정
- 속성의 값은 논리적으로 더 이상 쪼갤 수 없는 원자값만을 저장
키(Key)
데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 튜플들을 서로 구분할 수 있는 기준이 되는 속성
후보키 (Candidate Key) |
- 릴레이션을 구성하는 속성들 중 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합 - 기본키로 사용할 수 있는 속성들 - 릴레이션에 있는 모든 튜플에 대해서 유일성과 최소성을 만족해야함 |
기본키 (Primary Key) |
- 후보키 중에서 특별히 선정된 주키(Main Key), 중복된 값을 가질 수 없음 - 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성 - NULL값을 가질 수 없음(기본키 속성 중에는 NULL값이 있으면 안 됨) |
대체키 (Alternate Key) |
- 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키 - 보조키라고도 함 |
슈퍼키 (Super Key) |
- 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키 - 릴레이션을 구성하는 모든 튜플들 중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타내지 않음 - 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하나 최소성은 만족시키지 못함 |
외래키 (Foreign Key) |
- 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합을 의미 - 한 릴레이션에 속한 속성 A와 참조 릴레이션의 기본키인 B가 동일한 도메인 상에서 정의되었을 때의 속성 A를 외래키 |
무결성(Integrity)
데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 정확성을 의미함
개체 무결성 (Entity Integrity, 실체 무결성) |
기본 테이블의 기본키를 구성하는 어떤 속성도 Null 값이나 중복값을 가질 수 없다는 규정 |
도메인 무결성 (Domain Integrity, 영역 무결성) |
주어진 속성 값이 정의된 도메인에 속한 값이여야 한다는 규정 |
참조 무결성 (Referential Integrity) |
- 외래키 값은 Null이거나 참조 릴레이션의 기본키 값과 동일해야 함 - 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없음 |
사용자 정의 무결성 (User-Defined Integrity) |
속성 값들이 사용자가 정의한 제약조건에 만족해야한다는 규정 |
728x90
반응형
'자격증 준비 > 정보처리기사필기 - 3과목(데이터베이스 구축)' 카테고리의 다른 글
[정보처리기사 필기] 3과목 - DDL, DML, DCL (0) | 2023.01.15 |
---|---|
[정보처리기사 필기] 3과목 - 분산 데이터베이스, 암호화 (0) | 2023.01.15 |
[정보처리기사 필기] 3과목 - 트랜잭션, 인덱스, 뷰 (0) | 2023.01.13 |
[정보처리기사 필기] 3과목 - 정규화 (0) | 2023.01.13 |
[정보처리기사 필기] 3과목 - 관계대수 (0) | 2023.01.13 |