구조(Structure)
- 데이터의 정적인 성질
- 개체 타입과 이들 간의 관계를 표현
연산(Opertaion)
- 데이터의 동적인 성질
- 개체를 처리하는 작업에 대한 명세, 데이터 조작 기법
제약조건(Constraint)
- 데이터의 논리적 제약
- 데이터 조작의 한계를 표현한 규정
데이터베이스의 구성 요소
1. 개념적 구조 : 사용자 입장에서의 구성 요소 (데이터베이스 = {개체, 관계})
2. 논리적 구조 : 컴퓨터가 처리할 수 있는 데이터 모델
3. 물리적 구조 : 저장 미디어에서 본 데이터의 물리적 배치 및 구성
1. 개념적 구조
- 개체(Entity)
- 표현하고자 하는 현실 세계에 존재 하는 유,무형의 객체
- * 반드시 물질적으로 존재 할 필요는 없음 ex) 수강신청, 계약
- 데이터베이스에서 표현되는 정보의 단위
- 개체는 하나 이상의 속성(Attribute)로 구성
- 속성 : 데이터의 가장 작은 논리적인 단위
- 물리적인 단위 : Bit
- 파일 시스템의 레코드(Record)에 대응 되는 개념
- Entity Set <ㅡ> Entity Instance
객체 타입(Entity Type)
- 개체 집합에 속한 개체 인스턴스들이 공통으로 가지는 특징(구조)
관계(Relationship)
- 개체들 사이에 존재하는 연관성
- ex) 교수와 학생 사이에는 지도 관계가 있다
- 신랑과 신부 사이에는 결혼 관계가 있다
2. 논리적 구조
- 컴퓨터가 인식하고 처리할 수 있는 데이터의 논리적 구조
- 데이터베이스 관리 시스템과 사용자가 공통으로 인식하는 구조
- 데이터베이스는 주로 관계형 데이터 모델에 기반함
- 과거에는 계층적 모델, 네트워크 모델 등이 있었음
- 현재 프로그래밍 환경에서는 주고 객체 지향 모델을 사용한다.
- 실세계를 객체(Object)들과 객체들 간의 의사전달(Message Passing)로 모델링 함
- 최근 데이터베이스 관리 시스템들은 객체 관계형 모델을 사용함 ORDMBS
3. 물리적 구조
- 하드 디스크, SSD, DVD와 같은 저장 미디어에서 본 데이터의 물리적인 배치 및 구성
- 컴퓨터 위주의 표현 방식으로 저장 장치에 저장된 데이터의 실제 구조 및 접근 방법
- 일반 사용자나 응용 프로그래머들은 물리적 구조를 인지하거나 파악하지 못함
*데이터베이스 구성 시 유의사항*
데이터베이스의 논리적 구조는 사용자가 숙지하고 있어야 함
물리적 구조는 일반 사용자가 숙지할 필요는 없음
논리적 구조와 물리적 구조 사이의 도표화(Mapping)은 데이터베이스 관리 시스템이 지원함
관계형 데이터 모델(Relational Data Model)
- 데이터베이스에서 가장 많이 쓰이고 있는 논리적 모델
관계형 데이터 모델의 특징
단순한 모델 구조
- 수학적 이론(집합론 : Set Theory)에 기반한 모델의 강건(Sound)함
- SQL이라는 간단한 비절차적 언어로 쉬운 데이터 처리 가능
집합론
집합의 특성
- 우리의 직관 또는 사고의 대상 중에서 확정되어 있고 서로 명확히 구별 되는 것들의 모임
- 구체적, 객관적 기준에 의해 원소를 명확히 구분 가능해야 함
- 집합을 구성하는 원소 : 집합 내에서 유일하게 식별 될 수 있어야 함
- 논리적인 개념도 집합의 구성 요소가 될 수 있음
- 눈으로 보거나 손으로 만질 수 없더라도 첫번째 조건을 충족하는 개념이라면 이 역시 집합이 될 수 있음
1. 군집(Collection)
- 동일한 유형의 원소들이 모여있는 군집
- 하위타입 : Set, Bag, List, Array
2. Set
- 원소의 중복 불가
- 원소들 간의 순서 없음
3. Bag or Multi-Set
- 원소의 중복 허용
- 원소들 간의 순서 없음
4. List
- 원소의 중복 불가
- 원소들 간의 순서 있음
5. Array
- 원소의 중복 허용
- 원소들 간의 순서 있음
ex) {a, b, c} : set/list(o), bag/array(o) {a, b, b, c} : set/list(x), bag/array(o)
{a, b, c} == {b, a, c} ? set/bag(true), list/array(false)
관계형 데이터 모델의 구성 요소
1. 릴레이션
- 2차원 테이블 구조
- 테이블의 행(Row) : 튜플(Tuple)
- 릴레이션은 튜플들의 집합(set) --> 중복x, 순서x
- 개념적 모델읠 개체(Entity)가 관계형 모델에서 한 튜플에 대응 됨
- 개념적 모델의 관계(Relationship)도 관계형 모델에서 한 튜플에 대응 됨
2. 속성(Attribute)
- 테이블의 열(Colum)
- 관계형 데이터 모델에서 데이터의 가장 작은 논리적 단위
- 관계형 모델에서는 이 데이터 값들을 더 분해하려고 해도 더 분해할 수 없는 원자 값(Atomic Value)만들 허용
- 원자 값은 아무런 내부적 구조를 지니고 있지 않음
3. 도메인(Domain)
- 한 속성이 가질 수 있는 값의 범위
- 도메인과 속성의 관계는 프로그래밍 언어에서 타입과 변수에 비유할 수 있다
- *어떤 데이터 타입으로 선언된 변수는 언제 어느 때고 그 선언된 데이터 타입의 값만을 가짐
- 속성 정의시 모데인도 함께 명세함으로써 실제 속성이 갖는 값이 합법적인지 아닌지를
- 데이터베이스 관리시스템(DBMS)을 통해 검사 가능
릴레이션의 특성
1. 튜플의 유일성
- 릴레이션은 튜플의 집합
- 집합은 중복을 허용하지 않음
2. 튜플의 무순서성
- 릴레이션은 튜플의 집합
- 집합에서 원소들 간의 순서는 없음
3. 속성의 무순서성
- 스키마는 속성들의 집합
4. 속성의 원자성(Atomicity)
- 속성값은 원자값
* 원자 : 더이상 쪼갤 수 없는 물질의 최소 단위
- 속성은 개체를 구성하는 가장 작은 논리적 단위 - > 논리적으로 더 분해할 수 없음
- 한 릴레이션에 나타난 속성값은 논리적으로 더 이상 분해될 수 없는 원자 값 처리상의 단위 값 : Unit Value
- 이 성질의 근본적인 의미 : 튜플의 속성값은 하나의 값만을 허용
- 반복 그룹, 즉 값의 집합은 허용하지 않음
- 반복 그룹을 허용하지 않는 릴레이션 : 정규화 릴레이션(Normalized Relation)
- 관계형 데이터 모델은 이 정규화 릴레이션만을 취급함
학번 | 이름 | 학과명 | 성별 | 성적 |
20051201 | 김철수 | 컴퓨터 | 남 | 85 |
20050315 | 이영희 | 수학 | 여 | 95 |
20040527 | 홍길동 | 과학 | 남 | 88 |
20031209 | 이영희 | 컴퓨터 | 여 | 95 |
20040307 | 박희동 | 수학 | 남 | 82 |
Q. 위 테이블을 통해 알 수 있는 속성, 도메인, 차수, 튜플, 카디널리티, 릴레이션 값은 ?
속성(Attribute) : 각 열에 부여 되는 이름 (ex. 학번, 이름, 학과명, 성별, 성적)
도메인(Domain) : 각 속성에 입력 가능한 값들의 범위를 미리 정한 것 (ex. 남, 여)
차수(Degree) : 속성의 수
튜플(Tuple) : 각 행을 의미, 하나의 튜플은 각 속성에서 정의된 값들을 이용해서 구성 됨
카디널리티(Cardinality) : 튜플의 수를 의미
릴레이션(Relation) : 테이블을 의미, 중복된 튜플이 있어서는 안 되고 중복된 속성이 있어서도 안 됨
'database > db' 카테고리의 다른 글
관계 연산자 (0) | 2022.11.13 |
---|---|
무결성 제약 조건 - 개체 무결성 / 참조 무결성 /도메인 무결성 (0) | 2022.10.30 |
키(Key)의 개념과 종류 (0) | 2022.10.30 |
정보 처리 시스템의 개념과 특징 (0) | 2022.10.25 |
Data Base(DB)의 개념과 특징 (0) | 2022.10.25 |