- 데이터베이스 설계
데이터베이스 설계는 데이터베이스의 스키마를 정의 한 후에 이에 따라 데이터베이스를 구현하기 위한 전반적인 과정
데이터베이스 설계과정은 요구조건분석, 설계, 구현, 운영 및 개선 등의 과정을 통해 이뤄짐
- 요구조건분석 : 사용자가 무엇에 대한 정보를 필요로 하는지 문제가 무엇인지 등을 분석하는 과정
실제로 만들어야 할 데이터 베이스 정의, 사용자의 요구 조건에 따라 명세서(Specification) 작성 - 설계
- 개념적 설계(Conceptual Design) : 개념적으로 구현할 데이터베이스를 정의, 구성요소 결정, E-R모델 이용
- E-R모델(Entity-Relation Model)
데이터베이스에서 사용되는 개체(Entity), 속성(Attribute), 개체와 개체 간의 관계(Relation) 등을 약속된 기호를 이용하여 표현함으로써 데이터베이스의 전반적인 구조를 이해하기 쉽도록 표현한 모델 - 논리적 설계(Logical Design) : 사용자가 알아 볼 수 있는 형태로 변환, 스키마 정의, 표의 형태로 표현된 모델을 '관계 데이터 모델'이라 함
- 물리적 설계(Physical Design) : 실제 기계가 처리하기에 알맞도록 내부 저장 장치 구조와 접근 경로 등을 설계, 효율적인 기계 처리에 맞도록 설계
- 구현
- 설계 과정에서 얻어진 것을 토대로 실제 데이터베이스를 만드는 과정으로 데이터베이스 언어를 이용하여 간결·명료하면서도 분석·계획한 내용과 일치하고 유지·보수가 용이하도록 작성
- 데이터베이스 언어
- 정의어(DDL) : 데이터베이스의 정의, 수정, 삭제를 위해 사용하는 언어
- 조작어(DML) : 데이터베이스 내의 자료를 검색, 삽입, 수정, 삭제하기 위해 사용하는 언
- 제어어(DCL) : 데이터베이스의 데이터 보호와 관리를 위해 사용하는 언어
- 운영 및 개선
- 구현된 데이터베이스를 실제로 운영하는 단계. 문제점과 개선점 등을 파악
- 개체-관계 모델
- 개체-관계 모델(E-R Model)
- 개념적 설계에서 사용하는 설계 기법
- 데이터베이스를 구성하는 개체(Entity)타입과 관계(Relation)타입 간의 구조 또는 개체를 구성하는 속성(Attribute)등을 약속된 기호로 이용하여 표현
- P.Chen 박사에 의해 최초로 제안
- E-R Model의 기호
- E-R Model의 표현
- 학번, 성명, 전공 속성으로 구성된 학생의 경우
- 개체와 개체 간의 관계 타입을 표현한 경우
- 관계의 종류에 따른 표현 방법
- 다양한 관계 표현법(정보 공학적 표현법)
- 1:1 관계의 정보 공학적 표현
- n:m 관계의 정보 공학적 표현
- 'O'의 선택적 관계 표현
- 데이터베이스의 모델
개념적 설계 이후 논리적 설계 단계에서 사용되는 모델로 논리적으로 구현 가능한 데이터 모델로 변환하기 위해 사용
종류 : 관계 데이터 모델, 네트워크 데이터 모델, 계층 데이터 모델 등
- 관계 데이터 모델
'표 데이터 모델'이라고도 함
2차원 구조의 표(테이블) 형태로 표현
구조가 단순하며 사용이 편리하여 가장 많이 사용하고 있는 형태
n:m 표현이 가능
- 네트워크 데이터 모델
'망 데이터 모델'이라고도 함
레코드 타입간 관계를 도형으로 표현
- 계층 데이터 모델
트리 구조로 표현
'트리 데이터 모델'이라고도 함
부모-자식 관계 즉, 1:n 관계를 나타냄
- 관계 데이터 모델
- 관계 데이터 모델의 용어
- 릴레이션(Relation) : 자료의 저장 형태가 2차원 구조인 테이블(표)
- 속성(Attribute) : 릴레이션을 구성하는 각 열(Column=항목)
- 튜플(Tuple) : 릴레이션의 한 행을 구성하는 속성들의 집합으로 행(Row)을 의미, 레코드(Record)라고도 함
- 도메인(Domain) : 하나의 속성이 가질 수 있는 값들의 범위
- 릴레이션 스키마(Relation Schema) : 릴레이션의 이름과 속성 이름의 집합으로 릴레이션의 구조를 의미
- 릴레이션 인스턴스(Relation Instance) : 릴레이션에서 어느 시점까지 입력된 튜플들의 집합
- 차수(Degree) : 하나의 릴레이션을 구성하는 속성(항목)의 수
- 카디널리티(Cardinality) : 하나의 릴레이션에 입력된 튜플(행)의 수
- 릴레이션의 특징
릴레이션의 튜플들은 모두 상이하다.
릴레이션의 튜플들은 유일하며 순서에는 의미가 없다.
릴레이션의 속성들 간의 순서는 의미가 없다.
릴레이션의 속성은 원자값으로 구성되며 분해가 불가능 하다.
- E-R Model과 관계 데이터 모델과의 관계
- E-R Model로 표현된 단순한 개체와 속성을 릴레이션으로 표현한 경우
E-R Model에서 개체는 릴레이션으로, E-R Model에서 각각의 속성은 릴레이션의 각 속성(항목)으로 변환
- 개체와 개체 간의 관계를 나타낸 E-R Model을 릴레이션으로 표현한 경우
E-R Model에서 두 개체 간의 관계를 나타낸 경우 두 릴레이션으로 표현
두 릴레이션의 관계를 연결하기 위해서는 두 릴레이션의 기본키 속성을 필요한 릴레이션에 추가해서 관계가 성립되도록한다
Mapping Rule
개념적 데이터베이스 모델링 결과를 관계형 데이터베이스 이론에 근거하여 데이터베이스 구조로 변환하는 과정을 말함
개체(Entity)는 릴레이션(테이블)으로 속성은 릴레이션의 항목으로, 키 속성(식별자)은 기본키로, 관계는 외래키로 변환
교차 엔티티(Intersection Entity)
n:M(다대다)관계의 E-R Model을 릴레이션으로 표현하는 경우 보다 정확한 상호 참조를 위해 하나의 릴레이션을 더 만들게 되는데 이를 '교차 엔티티(Intersection Entity)라고 함
- 키(Key)와 무결성 제약조건
- 키(Key)의 개념
- 관계 데이터베이스에서 튜플을 식별하기 위해 사용하는 속성이나 속성의 집합
- 데이터베이스를 참조하거나 검색할 때 사용
- 키(Key)의 종류
- 후보키(Candidate Key)
- 릴레이션(테이블)에서 각 튜플을 유일하게 식별할 수 있는 속성이나 속성의 집합
- 후보키가 될 수 있는 조건 : '유일성 + 최소성' 을 모두 만족
- 기본키(Primary Key)
- 후보키 중에서 튜플을 식별하기 위해 특별히 선택된 키
- 중복될 수 없으며, Null 값이 올 수 없음
- '유일성 + 최소성' 모두 만족
- 대체키(Alternate Key)
- 후보키 중에서 기본키를 제외한 속성을 말함
- 외래키(Foreign Key)
- 하나의 테이블에서 원하는 자료를 얻지 못하는 경우 다른 테이블을 참조(이용)하기 위해 사용되는 속성
- '외래 식별자'라고도 함
- 외래키는 참조 릴레이션(테이블)의 기본키와 같아야 함
- 외래키는 Null이 올 수
없다있다 - 외래키의 속성명과 참조 릴레이션의 기본키 속성명은 서로 달라도 무방
- 슈퍼키(Super Key)
- 한 릴레이션(테이블) 내의 튜플들을 식별할 수 있는 후보키와 다른 속성들과의 모든 조합
- 유일성은 만족하지만 최소성은 만족하지 않음
- 무결성(Integrity) 제약조건
- 개체 무결성
- 기본키는 Null 값이 올 수 없으며, 중복될 수 없음
- 개체를 식별하기 위해서 오류가 없도록 하기 위한 제약조건
- 참조 무결성
- 외래키는 Null 값이 올 수
없으며있으며, 참조 릴레이션(테이블)의 기본키와 같아야 함 - 테이블 참조시 오류가 없돌고 하기 위한 제약 조건
- 도메인 무결성
- 릴레이션(테이블)에서 속성값의 범위가 정의된 경우 그 속성값은 정해진 범위 이내의 값으로 구성해야 함
- 동일한 속성에 대해 데이터 타입과 데이터 길이가 동일해야 함
- 고유(Unique) 무결성
- 특정 속성에 대해 고유한 값을 가지도록 조건이 주어진 경우, 그 속성값은 모두 달라야 함
- Null 무결성
- 특정 속성값에 Null이 올 수 없다는 조건이 주어진 경우, 그 속성값은 Null값이 올 수 없음
- 키 무결성
- 한 릴레이션(테이블)에는 최소한 하나의 키가 존재해야 함
- 관계 데이터 연산
- 관계 대수(Relational Algebra)
절차적 언어 : 릴레이션에서 사용자가 원하는 결과를 얻기 위해 연산자를 표현하는 방법으로 결과를 얻기 위한 절차를 표현함 /크게 순수 관계 연산자와 일반 집합 연산자로 나뉨/순수 관계 연산자 : SELECT, PROJECT, JOIN, DIVISON/일반 집합 연산자 : 합집합(u), 교집합(n), 차집합(-), 카티션 프로덕트(x) 등
- 셀렉트(SELECT, σ)
- 릴레이션에서 조건을 만족하는 수평적 부분 집합(튜플)을 구하기 위한 연산
- 결과는 조건을 만족하는 튜플들로 테이블이 만들어짐
- 연산 기호 : 시그마(σ)
- 표기 형식 : σ<선택조건>(테이블이름)
- 프로젝트(PROJECT, π)
- 릴레이션에서 수직적 부분 집합(속성의 값)을 구하는 연산으로 원하는 속성만 추출하기 위함
- 연산 기호 : 파이(π)
- 표기 형식 : π<추출 속성리스트>(테이블 이름)
- 조인(JOIN, )
- 두 테이블로부터 조건에 맞는 관련된 튜플들을 하나의 튜플로 결합하여 하나의 테이블로 만드는 연산
- 종류 : 동일 조건(Equi Join), 자연 조인(Natural Join), 외부 조인(Outer Join) 등
- 연산 기호 :
- 표기 형식 : 테이블1 <조인조건>테이블2
- 동일 조건(Equi Join)
- 관계 연산자 중 '=' 연산자만을 사용하여 조건 표현
- 가장 기본이 되는 조인
- 두 테이블의 모든 속성을 합한 하나의 테이블 구조로 만들어짐(중복되는 속성도 포함된다)
- 디비전(DIVISION, ÷)
- A, B 두 테이블에서 'A DIVISION B'는 B 테이블의 조건을 만족하는 튜플들을 A 테이블에서 추출
- 결과는 연산에 사용된 속성은 제외
- 연산 기호 : ÷
- 표기 형식 : 테이블1(테이블1속성÷테이블2속성)테이블2
- 관계 해석(Relational Calculus)
- 릴레이션에서 결과를 얻기 위한 과정을 표현하는 것
- 연산자 없이 정의하는 방법을 이용하는 비절차적 언어
- 종류 : 튜플관계해석, 도메인관계해석
- 표기 형식 : {결과값 | 조건}
'용어,개념' 카테고리의 다른 글
[정보처리기능사] PART 3. 관계 데이터베이스 언어(SQL) (0) | 2011.12.11 |
---|---|
오버레이(Overlay) (0) | 2011.10.01 |
직교진폭변조 (QAM : Qadrature Amplitude Modulation의 약자) (0) | 2011.06.19 |
[펌]아날로그 변조 -AM과 FM (0) | 2011.06.19 |
[펌] 주소 지정 방식 (0) | 2011.06.12 |