3. 데이터베이스
3.3 논리 데이터베이스 설계
3.3.1 논리 데이터베이스 설계 능력 단위 정의
3.3.2 데이터 모델
- 논리 데이터베이스 설계
논리 데이터베이스 설계란 개념 데이터모델을 상세화하여 비즈니스의 논리적인 데이터집합, 관리항목 및 관계 등 데이터 구조 및 규칙을 논리 E-R다이어그램을 통해서 명확하게 표현하는 능력이다.
-데이터 모델
1. 데이터 모델 개념
1.1 데이터모델의 정의
데이터 모델은 현실세계의 정보들을 컴퓨ㅓ에 표현하기 위해서 단순화, 추상화하여 체계적으로 표현한 개념적 모형이다.
데이터베이스 내에 존재하는 데이터를 정의하고 데이터들 간의 관계를 규정하고 데이터의 의미와 데이터에 대한 제약 조건을 나타내는 개념적인 도구이다.
데이터베이스의 구조와 연산 , 제약조건으로 구성된다.
1.2 데이터 모델의 종류
1. 개념적 데이터 모델
현실 세계에 대한 인간의 이해를 돕기 위해 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정이다.
사용자가 데이터를 인식하는 방식에 가까운 개념을 제공하며 개체 기반 또는 객체기반 데이터 모델이라고도 한다.
현실 세계에 존재하는 개체를 인간이 이해할 수 있는 정보 구조로 표현하기 때문에 정보 모델이라고도 한다.
개념적 모델 : 높은 수준의 추상화 단계에서 실세계를 표현하기 위한 도구
논리적 모델 ; 컴퓨터에 의해 수행될 수 있도록 데이터를 기술하기 위한 도구
대표적인 개념적 모델로는 E-R모델이 있다. E-R 모델은 속성들로 기술된 개체 타입과 이 개체 타입들 간의 관계를 이용하여 현실 세계를 표현한다.
1.2 논리적 데이터 모델
논리적 데이터 모델은 개념적 모델링 가ㅗ정에서 얻은 개념적 구조를 컴퓨터가 이해하고 처리할 수 있는 컴퓨터 세계의 환경에 맞도록 변환하는 과정이다.
논리적 데이터 모델은 필드로 기술된 데이터 타입과 이 데이터 타입들 간의 관계를 이용하여 현실 세계를 표현한다.
단순히 데이터 모델이라고 하면 논리적 데이터 모델을 의미한다.
특정 DBMS는 특정 논리적 데이터 모델 하나만 선정하여 사용한다.
논리적 데이터 모델은 데이터 간의 관계를 어떻게 표현하느냐에 따라 관계 모델, 계층 모델, 네트워크 모델로 구분한다
1.3 계층 데이터모델
데이터베이스의 논리적 구조가 트리 형태임
루트 역할을 하는개체가 존재하고 사이클이 존재하지않음
개체 간의 상하 관계가 성림
두 개체 사이에 하나의 관계만 정의할 수 있음
다대다 관계를 직접 표현할 수 없음
개념적 구조를 모델링 하기 어려워 구조가 복잡해질 수 있음
데이터의 삽입 삭제 수정 검색이 쉽지 않음
1.4 네트워크 데이터 모델
데이터베이스의 논리적 구조가 네트워크, 즉 그래프 형태임
개체 간에는 다대다 관계만 허용됨
두 개체 사이에 여러 관계를 정의할 수 있어 이름으로 구별함
다대다 관계를 직접 표현할 수 없음
구조가 복잡하고 데이터의 삽입 삭제 수정 검색이 쉽지 않다.
1.5 물리적 데이터 모델
논리적 데이터 모델에서 레코드의 상세 스펙 등을 기술한 모델로 실제 컴퓨터에 데이터가 저장되는 방법을 정의한다.
DBMS 설계 및 관리 메뉴얼에 따라 정의된다.
2. 개체-관계 모델
2.1 개체-관계 모델 정의
E-R 모델은 개념적 데이터 모델의 가장 대표적인 것으로, 1970년 피터 첸에 의해 개발되었다.
E-R 모델은 개체 타입과 이들 간의 관계 타입을 이용하여 현실 세계를 개념적으로 표현하는 방법이다.
ER 모델은 개체, 속성, 관계 등에 대하여 용이하게 표현할 수 있는 E-R도형을 정의하고 있다.
E-R 모델에서는 데이터를 개체, 관계, 속성으로 묘사하며, 1:1, 1:N, N:M 등의 관계유형을 제한없이 나타낼 수 있다.
최초에는 Entity, Relationship, Attribute와 같은 개념들로 구성되었으나 후에 일반화 계층 같은 복잡한 개념들이 첨가되어 확장된 모델로 발전했다.
2.2 E-R다이어그램 기호
E-R 모델의 기본 아이디어를 시각적으로 표현하기 위한 그림이다.
1. 개체
개체는 데이터베이스에 표현하려는 것으로 사람이 생각하는 개념이나 정보 단위 같은 현실 세계의 대상체이다.
개체는 실세계에 독립적으로 존재하는 유형, 무형의 정보로서 서로 연관된 몇 개의 속성으로 구성된다.
파일 시스템의 레코드에 대응하는 것으로 어떤 정보를 제공하는 역할을 수행한다.
독립적으로 존재하거나 그 자체로서도 구별 가능하다.
2. 개체 타입
개체 타입은 동일한 속성들을 가진 개체들의 틀을 의미한다. 개체 집합은 동일한 애트리뷰트들을 가진 개체들의 모임이다. E-R 다이어그램에서 개체 타입은 직사강형으로 나타낸다.
3. 속성
하나의 개체는 연관된 속성들의 집합으로 설명된다. 예를 들어 사우너 개체는 사원번호와 이름, 직책, 급여 등의 속성을 갖는다.
개체는 독립적인 의미를 갖는데 반해 속성은 독립적인 의미를 갖지 않는다.
속성은 데이터의 가장 작은 논리적 단위로서 파일 구조상의 데이터 항목 또는 데이터 필드에 해당한다.
속성은 E-R 다이어그램에서 타우너형으로 나타내고 개체 타입과 실선으로 연결한다.
속성 중에서 개체를 고유하게 식별할 수 있는 속성 또는 속성들을 집합을 주식별자 또는 기본키라고한다. E-R 다이어그램에서 기본키에 속하는 속성은 밑줄을 그어서 표시한다.
4. 도메인
도메인은 속성이 가질 수 있는 모든 가능한 값들의 집합을 말한다. 여러 속성들이 동일한 도메인을 공유할 수 있다 이를 통해 데이터베이스는 속성 값을 표준화해서 관리할 수 있다.
5. 관계
관계는 개체들 사이에 존재하는 연관이나 연력로서 두 개 이상의 개체 타입들 사이의 사상으로 생각할 수 있다.
관계 집합은 동질의 관계들의 집합을 말하며, 관계 타입은 동질의 관계들의 틀이다.
E-R 다이어그램에서 관계는 다이아몬드로 표기하며, 관계 타입이 서로 연관 시키는 개체타입들을 관계 타입에 실선으로 연결한다.
관계의 특징을 나타내는 속성을 가질 수 있으나, 키 속성은 갖지 않는다.
관계로 연결된 개체 타입들의 개수를 관계의 차수라고 하며, 실세계에서 가장 흔한 관계는 두 개의 개체 타입을 연결하는 2진 관계이다.
관계에 참여하는 개체의 어커런스 개수를 관계의 대응 카디널리티 라고 한다.
카디널리티는 한 개체가 관계에 참여 할 수 있는 관계의 수를 나타낸다.
3. 관계 데이터 모델
3.1 관계 데이터 모델 개념
관계 모델은 E.F. CODD가 1972년 제안한 데이터 모델로써 오늘날 대부분의 데이터베이스 관리시스템에서 지원하는 데이터 모델임
관계 모델은 실세계 데이터를 행과 열로된 표 형태로 저장하고 한 테이블의 필드 값을 이용하여 다른 테이블에 관련된 데이터를 찾는 식으로 검색하는 데이터 모델
3.2 관계 데이터 모델의 구성
데이터베이스는 테이블들의 집합으로 표현되며, 테이블은 튜플들의 집합으로 표현되고, 튜플은 애트리뷰트들로 구성됨.
각 학생은 레코드로 표시되고, 레코드의 각 필드는 단일값을 가진다.
각 테이블에는 모든 레코드에서 서로 다른 값을 가지는 필드가 있어야함
3.3 릴레이션의 특징
한 릴레이션에 포함된 튜플들은 모두 상이하다.
한 릴레이션에 포함된 튜플 사이에는 순서가 없다.
튜플들의 삽입, 삭제 등의 작업으로 인해 릴레이션은 시간에 따라 변한다.
릴레이션 스키마를 구성하는 속성들 간의 순서는 중요하지 않다.
속성의 유일한 식별을 위해 속성의 명칭은 유일해야 하지만, 속성을 구성하는 값은 동일한 값이 있을 수 있다.
릴레이션을 구성하는 튜플을 유일하게 식별하기 위해 속성들의 부분집합을 키로 설정한다.
속성은 더 이상 쪼갤 수 없는 원자값만을 저장한다.
3.4 키
1. 키의 정의
데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 튜플들을 서로 구분할 수 있는 기준이 되는 속성들을 말한다.
2. 키의 특징
유일성 : 하나의 키 값으로 하나의 튜플만을 유일하게 식별할 수 있어야 함
최소성 : 속성의 집합인 키가릴레이션의 모든 튜플을 유일하게 식별하기 위해 꼭 필요한 속성들로 구성된 것을 의미
3. 키의 종류
후보키 = 기본키+대체키
기본키 = 후보키-대체키
슈퍼키 > 후보키 > 대체키 > 기본키
4 후보키
후보키는 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합, 즉 기본키로 사용할 수 있는 속성들을 말한다
하나의 릴레이션내에서는 중복된 튜플들이 잇을 수 없으므로 모든 릴레이션에는 반드시 하나 이상의 후보키가 존재한다.
후보키는 릴레이션에 있는 모든 튜플에 대해서 유일성과 최소성을 만족시켜야한다.
5 대체키
후보키가 둘 이상일때 기본키를 제외한 나머지 후보키들을 말한다.
보조키라고도 한다.
6 슈퍼키
슈퍼키는 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키로서 릴레이션을 구성하는 모든 튜플들 중 슈퍼키로 구성된 속성의 집합과 동일한 값을 나타나지 않는다.
슈퍼키는 릴레이션을 구성하는 모든 튜플에 대해 유일성을 만족시키지만 , 최소성은 만족시키지 못한다.
7 외래키
관계를 맺고 있는 릴레이션 R1,R2에서 릴레이션이 R1이 참조하고 있는 릴레이션R2의 기본키와 같은 R1릴레이션의 속성을 외래키라고 한다.
외래키는 참조되는 릴레이션의 기본키와 대응되어 릴레이션 간에 참조관계를 표현하는데 중요한 도구이다.
3.5 무결성과 제약조건
1. 데이터 무결성
데이터베이스에 저장된 데이터의 일관성과 정확성을 지키는 것을 말하며, 데이터가 무결성을 가지도록 하는 행위를 무결성 강화라고 함
도메인 무결성
열의 값에관련된 무결성으로, 이를 강화시키는 방법에는 데이터 형식, NULL/NOT NULL, 기본값, 체크/규칙 등이 있다.
엔티티 무결성
테이블의 모든 행들이 유일하게 식별되는 무결성으로, 대부분의 경우 기본 키에 의해 강화된다. 테이블 무결성이라고도 한다.
참조 무결성
서로 관계를 맺은 두 테이블 사이의 무결성으로, 외래 키에 의해 강화된다. 자식 테이블의 외래 키는 반드시 부모테이블의 기본 키 값으로 존재하는 값을 가져야 하며, 외래 키가 참조하는 기본 키 값은 변경 또는 삭제가 금지된다.
2. 제약조건
제약 조건이란 데이터베이스에 저장되는 데이터의 정확성을 보장하기 위해 키를 이용하여 입력되는 데이터에 제한을 주는 것을 말한다.
1. 도메인 제약조건
각 필드의 값은 반드시 그 필드의 도메인에 속하는 원자값 이어야 한다.
2. 엔티티 제약조건
테이블마다 튜플을 서로 구분할 수 있는 필드가 존재하며, 이 필드를 Primary key라고 한다
기본 키 값은 널 값이 될 수 없다는 조건을 엔티티 무결성 제약조건이라 한다.
3. 참조 무결성 제약조건
한 테이블의 필드 값은 다른 테이블의 기본 키 값을 참조할때 두 테이블 사이에 참조 무결성 제약조건이 있다고 한다.
3.6 관계 데이터 언어
관계 데이터베이스의 릴레이션을 조작하기 위한 기본연산에는 관계대수와 관계해석이 있다.
이 연산은 사용자의 입장에서 볼 때 데이터를 처리하는 데이터 언어가 되며 관계대수는 절차적 언어이며 관계해석은 비절차적 언어이다.
1. 관계대수 정의
관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어이다.
릴레이션을 처리하기 위해 연산자와 연산규칙을 제공하는 언어로 피연산자가 릴레이션이고 결과도 릴레이션이다.
2. 관계대수 연산자의 종류
순수 관계 연산자
관계 데이터베이스에 적용할 수 있도록 특별히 개발한 관계 연산자
일반 집합 연산자
수학적 집합 이론에서 사용하는 연산자로서 릴레이션 연산에도 그대로 적용 가능하다.
일반 집합 연산자 중 합집합, 교집합, 차집합은 합병 조건이 가능해야 함
합병 조건 : 합병하려는 두 릴레이션 간에 애트리뷰트 수가 같고, 각 애트리뷰트가 취할 수 있는 도메인의 범위가 같아야 함
관계 대수의 한계
관계 대수는 산술 연산을 할 수 없음
집단 함수를 지원하지 않음
정렬을 나타낼 수 없음
데이터베이스를 수정할 수 없음
프로젝션 연산의 결과에 중복된 튜플을 나타내는 것이 필요할 때가 있는데 이를 명시하지 못함
3, 관계해석의 정의
코드박사가 제안한 것으로 수학의 술어해석에 기반을 두고있다.
원하는 정보가 무엇이라는 것만 정의하는 비절차적 특징을 갖는다. SQL문과 같은 질의어를 사용하며 튜플 관계해석과 도메인 관계해석으로 구성된다.
원하는 데이터만 명시하고 질의를 어떻게 수행할 것인가는 명시하지 않는 선언적인 언어이다.
4. 관계해석의 특징
비절차적 언어이다.
튜플 관계 해석과 도메인 관계 해석이 있다.
기본적으로 관계해석과 관계대수는 관꼐 데이터베이스를 처리하는 기능과 능력면에서 동등함
수학의 Predicate calculus에 기반을 두고 있음
관계해석으로 질의어를 표현
원하는 릴레이션을 정의하는 방법을 제공, 즉 원하는 정보가 무엇이라는 것만 정의하는 비절차적인 언어
연산들의 절차를 사용하여 데이터를 가져옴
기본적인 연산자로 union intersection difference를 사용함
전체관계를 조작하는데 사용되는 연산들의 집합
'자격증 > 정보처리기사' 카테고리의 다른 글
| 정보처리기사 30일차 (0) | 2021.02.08 |
|---|---|
| 정보처리기사 29일차 (0) | 2021.02.08 |
| 정보처리기사 27일차 (0) | 2021.02.05 |
| 정보처리기사 26일차 (0) | 2021.02.05 |
| 정보처리기사 25일차 (0) | 2021.02.03 |