728x90
- 관계 데이터 모델은 지금까지 제안된 데이터 모델들 중에서 가장 개념이 단순한 데이터 모델의 하나
- IBM 연구소의 E.F. Codd가 1970년에 관계 데이터 모델을 제안함
- 관계 데이터 모델을 최초로 구현한 가장 중요한 관계 DBMS 시제품은 1970년 대에 IBM 연구소에서 개발된 System R
- 1980년대 후반부터 여러 가지 데이터 모델들이 새로 등장했지만 관계 DBMS는 여전히 가장 널리 사용되는 DBMS
관계 데이터 모델이 큰 성공을 거둔 요인
- 바탕이 되는 데이터 구조로서 간단한 테이블(릴레이션)을 사용
- 중첩된 복잡한 구조가 없음(이해하기 쉽고 사용하기 쉽다)
- 집합 위주로 데이터를 처리(수학의 기초를 알고 있는 사람이라면 누구나 이해가능)
- 다른 데이터 모델에 비해 이론이 잘 정립되었음(생각하지 못한 에러발생이 적다)
- 관계 데이터베이스 설계와 효율적인 질의 처리 면에서 뛰어난 장점을 가짐
- 표준 데이터베이스 응용에 대해 좋은 성능을 보임
- 숙련되지 않은 사용자도 쉽게 이해할 수 있음
2.1 관계 데이터 모델의 개념
관계 데이터 모델
- 동일한 구조(릴레이션)의 관점에서 모든 데이터를 논리적으로 구성
- 논리적으로 연관된 데이터를 연결하기 위해서 링크나 포인터를 사용하지 않음(모든 것이 릴레이션에 의해 표현됨)
- 선언적인 질의어를 통한 데이터 접근을 제공
- 사용자는 원하는 데이터(what)만 명시하고, 어떻게 이 데이터를 찾을 것인가(how)는 명시할 필요가 없음
- 응용 프로그램들은 데이터베이스 내의 레코드들의 어떠한 순서와도 무관하게 작성됨(응용프로그램 작성이 쉬움)
기본적인 용어
- 릴레이션(relation): 2차원의 테이블(스프레드 시트와 유사, 행과 열로 구성)
- 레코드(record): 릴레이션의 각 행
- 투플(tuple): 레코드를 좀더 공식적으로 부르는 용어(특별한 구분이 없다면 레코드와 구분x)
- 애트리뷰트(attribute): 릴레이션에서 이름을 가진 하나의 열(원자값을 가짐)
도메인(domain)
- 한 애트리뷰트에 나타날 수 있는 값들의 집합
- 각 애트리뷰트의 도메인의 값들은 원자값(쪼게질 수 없는 값, 정수 문자열등의 single value만 가능)
- 프로그래밍 언어의 데이터 타입과 유사함
- 동일한 도메인이 여러 애트리뷰트에서 사용될 수 있음
- 복합 애트리뷰트나 다치(multivalued) 애트리뷰트는 허용되지 않음
- 도메인 정의
*address: city, dong 복합 애트리뷰트(composite attr, 밑에 서브 애트리뷰트를 갖게 하지 않음)
*다치: multi-valued(취미: 독서, 축구) -> 이걸 표현하려면 여러 튤을 사용하여 나타냄
관계 데이터 모델
- 복합 애트리뷰트, 다치 애트리뷰트를 허용x
*중복이 생기면 일관성을 해칠 수 있다.(유지보수가 어려워짐)
차수(degree)와 카디날리티(cardinality)
- 차수: 한 릴레이션에 들어 있는 애트리뷰트들의 수
- 유효한 릴레이션의 최소 차수는 1(열의 없는 릴레이셔 허용x)
- 릴레이션의 차수는 자주 바뀌지 않음
- 카디날리티: 릴레이션의 투플 수
- 유효한 릴레이션은 카디날리티 0을 가질 수 있음(empty 릴레이션 가능)
- 릴레이션의 카디날리티는 시간이 지남에 따라 계속해서 변함
널값(null value)
- ‘알려지지 않음’ 또는 ‘적용할 수 없음’을 나타내기 위해 널값을 사용
- 예: 사원 릴레이션에 새로운 사원에 관한 투플을 입력하는데, 신입 사원의 DNO(부서번호)가 결정되지 않았을 수 있음 널값은 숫자 도메인의 0이나 문자열 도메인의 공백 문자 또는 공백 문자열과 다름
- DBMS들마다 널값을 나타내기 위해 서로 다른 기호를 사용함
*NULL flag에 비트를 통해 널값을 표현함
릴레이션 스키마(relation schema)
- 릴레이션의 이름과 릴레이션의 애트리뷰트들의 집합
- 릴레이션을 위한 틀(framework)
- 표기법 릴레이션이름(애트리뷰트1, 애트리뷰트2, ... 애트리뷰트N) -> 집합의 형태임
- 기본 키 애트리뷰트에는 밑줄 표시
- 내포(intension)라고 함
릴레이션 인스턴스(relation instance)
- 릴레이션에 어느 시점에 들어 있는 투플들의 집합
- 시간의 흐름에 따라 계속 변함
- 일반적으로 릴레이션에는 현재의 인스턴스만 저장됨
- 외연(extension)이라고 함
관계 데이터베이스(relational database) 스키마
- 하나 이상의 릴레이션 스키마들로 이루어짐
관계 데이터베이스 인스턴스
- 릴레이션 인스턴스들의 모임으로 구성됨
728x90
'👨💻Computer Science > 데이터베이스' 카테고리의 다른 글
[Database] 02 - 3 릴레이션의 키 (0) | 2021.09.14 |
---|---|
[Database] 02 - 2 릴레이션의 특성 (0) | 2021.09.14 |
[Database] 01 - 7 데이터베이스 시스템 아키텍처 (0) | 2021.09.09 |
[Database] 01 - 6 ANSI/SPARC 아키텍처와 데이터 독립성 (0) | 2021.09.09 |
[Database] 01 - 5 DBMS 사용자 (0) | 2021.09.09 |
댓글