티스토리 뷰
- 관계형 모델의 개념
- 릴레이션의 특성
- 데이터베이스 모델링 과정
- 사용자 요구사항 분석 --데이터 및 업무--> 개념적 데이터 모델링 --ER모델--> 논리적 데이터 모델링 --관계형 모델--> 물리적 데이터 모델링 --물리적 세부사항--> 내부 스키마
- 논리적 데이터 모델링 단계
- DBMS에서 사용하는 데이터 모델에 맞추어 데이터를 표현하는 과정
- 데이터 정의 언어로 기술된 개념 스키마 생성
- 관계형 모델(relational model)
- 1969년 에드가 F.코드에 의해 제안
- 릴레이션(relation)으로 데이터를 표현하는 모델
- 데이터 표현이 단순하고 직관적 구조화 모델
- 현재 대다수 DBMS기초
- 관계형 모델을 사용하는 관계형 DBMS(RDBMS)
- Oracle, DB2, PostgreSQL, MySQL, MSSQL 등
- 릴레이션의 구성
- 데이터베이스 모델링 과정
- 릴레이션의 특성
- 릴레이션의 특징
- 레코드의 유일성 - 중복된 레코드의 존재가 불가능
- 레코드의 무순서성 - 레코드의 순서는 의미가 없음
- 컬럼의 무순서성 - 컬럼은 순서가 없고, 이름과 값의 쌍
- 컬럼값의 원자성 - 모든 값들은 나눌 수 없는 단 하나의 의미
- 키(key)의 역할
- 릴레이션의 레코드를 유일하게 식별하는 값
- 키의 종류 및 속성
- 키의 속성
- 유일성(Uniqueness)
- 최소성(Irreducibility)
- 키의 종류
- 슈퍼키(super key): 유일성 만족
- 후보키(candidate key): 유일성, 최소성 만족
- 기본키(PK: primary key): 레코드의 구분을 위해 선택된 후보키
- 외래키(FK: foreign key): 참조된 다른 릴레이션의 기본키
- 키의 속성
- 관계형 모델의 예
- 슈퍼키: 학과이름, {학과이름, 단과대학}, 주소, 전화번호, {전화번호, 졸업학점} 등
- 후보키: 학과이름, 주소, 전화번호
- 기본키: 학과이름
- 키의 참조
- 두 릴레이션에 포함된 레코드 간 연관성을 표현
- 관계형 모델의 제약조건
- 영역 제약 조건: 컬럼에 정의된 영역(domain)에 속한 값으로만 컬럼값이 결정
- 키 제약조건: 키는 레코드를 고유하게 구별하는 값으로 구성
- 개체 무결성 제약조건: 어떠한 기본키 값도 널(null)이 될 수 없음
- 참조 무결성 제약조건: 반드시 존재하는 레코드의 기본키만 참조가능
- null의 개념
- 없음 또는 0이 아닌 미지의 값에 대한 표현
- 입력된 적이 없는 값
- 적용 불가능한 값
- 없음 또는 0이 아닌 미지의 값에 대한 표현
- 논리적 데이터 모델링
- DBMS의 구현 모델에 맞춰 데이터를 표현하는 과정
- 데이터 정의 언어로 기술된 개념 스키마 생성
- 논리적 데이터 모델링의 필요
- 관계형 DBMS(RDBMS)의 구현 모델에 맞춰 데이터의 구조와 관계를 표현
- 작성된 ERD를 RDBMS가 수용 가능한 구조로 변환
- ER 다이어그램의 변환
- 개체집합은 하나의 릴레이션으로 변환됨
- 교수 릴레이션
- 교수번호(PK), 교수이름, 직위, 연봉
- 과목 릴레이션
- 과목코드(PK), 과목명, 학점, 교수번호(FK)
- 학생 릴레이션
- 학생번호(PK), 학생이름, 성별
- 과목 릴레이션
- 과목코드(PK), 과목명, 학점
- 수강
- 학생번호(PK, FK), 과목코드(PK, FK), 신청시각
- 데이터 연산
- 관계형 모델을 기반으로 구성된 릴레이션을 사용하여 새로운 릴레이션을 생성하는 표현
- 사용자의 관점에서 필요한 데이터를 릴레이션에서 추출하는 방법을 제공하는 도구
- 관계 대수(relational algebra)
- 관계 연산을 정의하는 방법
- 주어진 릴레이션에서 필요한 릴레이션을 만드는 연산자로 구성
- 관계 대수 연산자는 새로운 임시 릴레이션을 생성
- 연산자를 중첩하여 연산 처리 절차를 표현
- 셀렉트 연산
- 주어진 릴레이션에서 조건을 만족하는 레코드를 갖는 릴레이션을 생성
- 프로젝트 연산
- 기술된 컬럼만 갖는 릴레이션으로 재구성
- <컬럼리스트>: A1, A2, ..., An과 같이 R에 존재하는 컬럼을 ,(콤마)로 분리하여 기술
- 관계 대수 연산식의 활용
- Q) 직위가 '부교수'인 교수의 교수이름을 출력하라.
- 집합 연산자
- 수학적 집합 이론에서의 이진 연산
- 합집합, 교집합, 차집합
- 릴레이션은 집합, 레코드는 집합에 포함된 원소
- 집합 연산자 사용 조건
- 릴레이션 R과 S의 차수가 동일
- 모든 i에 대해 R의 i번째 컬럼의 도메인과 S의 i번째 컬럼의 도메인이 반드시 동일
- 수학적 집합 이론에서의 이진 연산
- 카티시언 프로덕트 연산
- 두 릴레이션에 포함된 레코드 간의 모든 조합을 생성하는 이항 연산자
- 조인 연산
- 두 릴레이션에서 조건을 만족하는 레코드를 결합한 레코드로 구성된 릴레이션을 생성
- Q) 컴퓨터과학과 소속의 교수가 강의하는 과목의 과목명과 과목코드는?
- 집계 함수 연산
- 집계 함수를 값들의 집합 또는 레코드의 집합에 적용하는 연산
'database' 카테고리의 다른 글
[database] 데이터 저장과 파일 (0) | 2021.04.23 |
---|---|
[database] 정규화 (0) | 2021.04.22 |
[database] 데이터베이스 모델링 (0) | 2021.03.17 |
데이터와 정보 (0) | 2021.03.13 |
[Database] 데이터베이스의 이해 (0) | 2021.03.13 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- server side rendering
- stackframe
- javascript
- 입출력장치
- dfs
- 교착상태
- 클래스
- 인접리스트
- 병행프로세스
- 인접행렬
- react
- 자료구조
- client side rendering
- 구조체
- 세마포어
- C
- 재귀함수
- 퀵정렬
- 배열
- 이진탐색
- BFS
- Java
- 알고리즘
- 동적프로그래밍
- 스텍
- 운영체제
- C++
- Stack
- 소프트웨어
- 최단경로
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함