방통대 데이터베이스 수업 내용을 정리했습니다.
1. 관계형 모델
- 논리적 데이터 모델링 : 특정 DBMS에서 사용하는 데이터 모델에 맞추어 데이터를 표현하는 과정
- 데이터 정의 언어로 기술된 논리스키마 생성
- 1969년 에드가 F 코드에 의해 제안, 릴레이션으로 데이터를 표현하는 모델
- 컬럼, 속성, 필드 / 레코드, 튜플
- 릴레이션의 특징 : 레코드의 유일성, 레코드의 무순서성, 컬럼의 무순서성, 컬럼값의 원자성
- 관계형 모델의 제약조건 : 영역제약, 키 제약, 개체 무결성 제약, 참조 무결성 제약
- 키의 종류 및 속성 : 슈퍼키, 후보키, 기본키, 외래키
2. ER 다이어그램 변환
- N 쪽에 외래키가 위치한다.
3. 관계 대수
- 관계연산의 개념 : 관계형 모델을 기반으로 구성된 릴레이션을 사용하여 새로운 릴레이션을 생성하는 표현
- 사용자의 관점에서 필요한 새로운 릴레이션을 정의하는 방법
- 관계대수 : 주어진 릴레이션에서 필요한 릴레이션을 만드는 연산자로 구성(관계 연산의 과정표현)
셀렉트연산(가로 추출), 프로젝트 연산(세로 추출)
- 관계해석 : 원하는 릴레이션에 포함되는 레코드의 조건을 정의하는 방식(관계연산의 결과표현)
- 조인 연산자 : 두 릴레이션에서 조건을 만족하는 레코드를 결합한 레코드로 구성된 릴레이션을 생성
- 집계함수연산 : 집계 함수를 값들의 집합 또는 레코드의 집합에 적용하는 연산
연습문제
1. 다음 중 빈칸에 들어가야하는 용어로 맞지 않는 것은? 3번 애트리뷰트X -> 레코드
2. 한 릴레이션을 구성하는 컬럼 사이에는 순서가 없고 이름과 값의 쌍으로 구성된다 : 컬럼의 무순서성
3. 두 개의 릴레이션 사이에 명시되는 제약조건으로 한 릴레이션에 있는 레코드가 다른 릴레이션에 있는
레코드를 참조하려면 반드시 존재하는 릴레이션만 참조해야 한다는 제약조건을 명시한다 : 참조 무결성 제약조건
4. 다음의 ER 다이어그램을 관계형 모델로 올바르게 변환한 것은? 1번, N쪽에 외래키가 위치한다.
5. 강좌명이 요가인 강좌의 강좌번호, 강좌명, 강사번호를 출력하시오 : 시그마 강좌명
6. 홍길동 강사의 종목을 출력하시오에 대한 관계 대수 연산식은? 2번 (n종목(강좌 ~)
정리하기
관계형 모델은 테이블의 집합체에 기반을 두고 있다. 릴레이션은 속성들로 이루어진 테이블을 의미한다.
레코드는 릴레이션의 각 행을 의미하며, 속성은 각 열을 의미한다. 이때 릴레이션 스키마란 어떠한
테이블에서 사용되는 속성과, 속성이 지니는 데이터 타입을 정의한 것을 의미한다.
기본키는 한 데이터베이스 내에서 레코드를 유일하게 판별할 수 있는 속성을 말하며,
카디널리티는 레코드의 개수를 의미한다. 키의 종류로는 기본키, 후보키, 수퍼키 등이 있다.
개념적 모델링 단계, 즉 고수준의 추상적인 ER 모델링의 결과를 토대로 실제 상용 DBMS상의 데이터베이스를
만들려면 각 DBMS에 맞는 구현 데이터 모델로의 변환이 필요하다. 이러한 변환 과정을 논리적 데이터
모델링이라고 한다.
ER 모델에서 관계 데이터 모델로의 변환 시 보통 개체는 릴레이션으로, 약한 개체 집합의 경우 강한
개체의 키를 약한 개체의 부분키와 합쳐서 기본키로 갖는 릴레이션으로 변환 가능하다.
ER 모델에서 관계 데이터 모델로의 변환 시 일대일 사상수를 가지는 관계는 참여하는 두 릴레이션 중에
어느 하나의 릴레이션에만 다른 릴레이션의 기본키를 참조하는 외래키 속성을 추가하는 것으로 변환
가능하다. 또한 다대일 관계의 경우 다 쪽 릴레이션에 일 쪽의 기본키를 참조하는 외래키를 기본키로
갖도록 변환해 준다. 다대다 관계의 경우 관계 릴레이션을 별도로 생성하여 관계에
두 릴레이션의 기본키를 각각 참조하는 외래키로 구성하고, 이 두 외래키를 기본키로 갖게 하는 방법으로
변환 가능하다.
관계 데이터베이스에서는 관계 대수라는 절차적 질의 언어를 사용할 수 있다. 관계 대수 연산에서
릴레이션에 대한 집합 연산으로는 셀렉트, 프로젝트, 합집합, 교집합, 차집합, 카티션 프로덕트 연산
등이 있다.
관계 대수의 또 다른 연산은 자연 조인, 할당 연산자 및 프로젝트 연산과 SUM, AVG, MAX, MIN, COUNT와
같은 집계 함수가 있다.
'문돌이의 IT > Oracle' 카테고리의 다른 글
[컴퓨터과학과 데이터베이스]데이터베이스 정규화 (2) | 2017.05.19 |
---|---|
[컴퓨터과학과 데이터베이스]SQL (0) | 2017.05.18 |
[방통대 컴퓨터과학과]데이터베이스 모델링 요약 (0) | 2017.05.02 |
[방통대 컴퓨터과학과]데이터베이스의 이해 요약(2) (0) | 2017.05.02 |
[방통대 컴퓨터과학과]데이터베이스의 이해 요약 (0) | 2017.05.01 |