방송대/데이터베이스 시스템
3강. 관계형 모델
monimoni
2025. 3. 3. 18:10
1. 데이터베이스 모델링 과정
2. 논리적 데이터 모델링 단계
- DBMS의 구현 모델에 맞춰 데이터의 구조를 표현하는 과정
- 구현모델 : 데이터의 저장 및 인출 방법을 명시한 모델
- 데이터 정의 언어로 기술된 개념 스키마 생성
- 관계형 모델 ( Relational Model )
- 1969년 에드가 F.코드에 의해 제안
- 릴레이션( Relation )으로 데이터를 표현하는 모델
- 데이터 표현이 단순하고 직관적 구조화 모델
- 현재 대다수 DBMS의 기초
- 관계형 모델을 사용하는 관계형 DBMS( RDBMS )
- Oracle, DB2, PostgreSQL, MySQL, MSSQL 등
3. 릴레이션의 구성
- 릴레이션 : Table ( 표 ), 레코드의 집합
- 릴레이션은 하나의 컬럼과 레코드가 관계를 형성해 데이터를 결정지을 수 있는 구조다.
- 이때 컬럼과 레코드는 메타 데이터이며, 이 둘로 데이터를 형성
- 릴레이션은 방대한 메타데이터와 값을 집약적으로 표현 및 저장할 수 있는 구조다.
- 스키마 : 릴레이션 내 컬럼들의 속성, 전체적인 구조
- 레코드 / 투플 : 스키마에 맞춘 하나의 데이터 집합 ( 행 )
- 인스턴스 : 레코드의 집합을 의미
- 컬럼 / 속성 / 필드 : 릴레이션의 컬럼 ( 열 )
4. 릴레이션의 특성
- 레코드의 유일성 : 중복된 레코드의 존재가 불가능
- 레코드의 무순서성 : 레코드의 순서는 의미가 없음
- 컬럼의 무순서성 : 컬럼은 순서가 없고, 이름과 값의 쌍
- 컬럼값의 원자성 : 모든 값들은 나눌 수 없는, 단 하나의 의미
5. 키( Key )의 개념
- 릴레이션에서 고유한 레코드를 유일하게 식별하는 값
6. 키( Key )의 속성 및 종류
- 키의 속성
- 유일성( Uniqueness ) : 고유한 값을 가져야 한다.
- 최소성( Irreducibility ) : 더이상 줄일 수 없어야 한다.
- 여러개의 컬럼으로 구성된 키가 있을 때, 없어도 되는 컬럼이 있으면 제외해야 한다.
- 키의 종류
- 슈퍼키( Super Key ) : 유일성 만족
- 후보키( Candidate Key ) : 유일성 / 최소성 만족
- 기본키( PK : Primary Key ) : 레코드의 구분을 위해 선택된 후보키
- 외래키( FK : Foreign Key ) : 참조된 한 릴레이션의 기본키
- 한 릴레이션 레코드와 다른 릴레이션에 관계된 레코드가 무엇인지 파악 가능
7. 키의 참조
- 두 릴레이션에 포함된 레코드 간 연관성을 표현
- 기본키( PK )를 가지고 외래키( FK )로 나타냄
8. 관계형 모델의 제약조건
- 영역 제약조건 : 컬럼에 정의된 영역( Domain )에 속한 값으로만 컬럼값이 결정
- 키 제약조건 : 키는 레코드를 고유하게 구별하는 값으로 구성
- 개체 무결성 제약조건 : 어떠한 기본키 값도 Null이 될 수 없음
- 참조 무결성 제약조건 : 반드시 존재하는 레코드의 기본키만 참조 가능
9. Null의 개념
- ‘없음’ 또는 ‘0’이 아닌 미지의 값에 대한 표현
- 입력된 적이 없는 값
- 적용 불가능한 값
10. 논리적 데이터 모델링의 개념
- DBMS의 구현 모델에 맞춰 데이터의 구조를 표현하는 과정
- 데이터 정의 언어로 기술된 개념 스키마 생성
- 논리적 데이터 모델링의 역할
- 관계형 DBMS( RDBMS )의 구현 모델에 맞춰 데이터의 구조와 관계를 표현
- 도출된 ERD를 RDMS가 수용 가능한 구조로 변환
11. 관계형 모델로 변환 방법
- 개체 집합
- 개체 집합은 릴레이션으로 변환
- 약한 개체 집합
- 강한 개체 집합의 키 속성을 약한 개체 집합의 릴레이션에 포함
- 일대일 관계
- 두 릴레이션 중에서 한 릴레이션의 기본키를 다른 릴레이션에서 외래키로 참조
- 일대다 혹은 다대일 관계
- ‘일’쪽의 기본키를 ‘다’쪽 릴레이션에서 외래키로 참조
- 다대다 관계
- 관계 릴레이션을 생성하고, 두 릴레이션의 기본키를 각각 참조하는 외래키를 복합키 형태의 컬럼으로 구성
- 다중값 속성
- 릴레이션의 기본키를 참조하는 외래키와 다중값 속성으로 별도의 릴레이션으로 구성
- 관계 집합의 속성
- 외래키가 위치한 릴레이션의 컬럼으로 삽입
12. 관계 연산의 개념
- 관계형 모델을 기반으로 구성된 릴레이션을 사용하여 새로운 릴레이션을 생성하는 연산자
- 사용자의 관점에서 필요한 데이터를 다수의 릴레이션에서 추출하는 방법이 필요
- 관계 대수( Relational Algebra )
- 관계 연산을 정의하는 방법
- 주어진 릴레이션에서 필요한 릴레이션을 만드는 연산자로 구성
- 관계 대수 연산자는 새로운 임시 릴레이션을 생성
- 연산자를 중첩하여 연산 처리 절차를 표현
13. 셀렉트 연산( SELECT )
- 주어진 릴레이션에서 조건을 만족하는 레코드를 갖는 릴레이션을 생성
- σ조건(R)
- ex ) σ소속학과=’컴퓨터학과’ (교수) : 교수 릴레이션에서 소속학과의 값이 컴퓨터학과인 레코드 조회
- 조건 : 속성이나 상수 값을 대상으로 =, ≠, <, ≤, >, ≥ 등의 기호를 사용한 비교 연산이 허용
- 조건의 결합 : AND(∧), OR(∨)
14. 프로젝트 연산
- 기술된 컬럼만 갖는 릴레이션으로 재구성
- π<컬럼리스트>(R)
- ex ) π교수이름,소속학과(교수) : 교수 릴레이션에서 교수이름과 소속학과 컬럼만 가진 릴레이션으로 재구성
- <컬럼리스트>
- A1, A2, A, … 와 같이 R에 존재하는 컬럼을 ,( 콤마 )로 분리하여 기술
- 컬럼의 순서를 다르게 표현하고자 할 때에는 프로젝트 연산자에서 컬럼의 순서를 다르게 표기하면 됨
15. 집합 연산자
- 릴레이션은 집합, 레코드는 집합에 포함된 원소
- 집합 이론에서의 이진연산
- 합집합 : R ∪ S
- 교집합 : R ∩ S
- 차집합 : R - S
- 집합 연산자의 사용 조건
- 릴레이션 R과 S의 차수가 동일
- 차수는 컬럼의 개수를 의미
- 모든 i에 대해 R의 i번째 컬럼의 도메인과 S의 i번째 컬럼의 도메인이 반드시 동일
- 릴레이션 R과 S의 차수가 동일
16. 카타시언 프로덕트 연산
- 두 릴레이션에 포함된 레코드 간의 모든 조랍을 생성하는 이항 연산자
- R X S
17. 조인 연산
- 두 릴레이션에서 조건을 만족하는 레코드만 결합한 레코드로 구성된 릴레이션 생성
- R▷◁(JOIN 조건)S
- 사실상 σJOIN조건(RXS)와 동일
- ex ) 과목▷◁과목.교수번호=교수.교수번호 교수
- ex 해석 ) 과목 X교수의 릴레이션에서 과목의 교수번호와 교수의 교수번호가 동일한 레코드만 남기는 릴레이션 생성
18. 집계 함수 연산
- 집계 함수를 값들의 집합 또는 레코드의 집합에 적용하는 연산
- gx(A)(R)
- A : 집계 연산을 적용할 컬럼
- x( ) : AVG, SUM, MIN, MAX, COUNT 등의 집계 함수
- ex ) gCount(과목명)(과목) : 과목 릴레이션에서 과목명 컬럼내 컬럼값 종류를 집계
19. 그룹화를 이용한 집계 함수 연산
- 레코드 그룹화를 위해 집계 함수 연산자 앞에 그룹화 속성을 기술
- Bgx(A)(R)
- B : 그룹의 기준이 되는 컬럼
- X ( ) : 집계 함수
- A : 집계 연산을 적용할 컬럼
- R : 릴레이션
- ex ) 소속학과g소속학과,Count(*)(교수)
- ex 해석 ) 교수 릴레이션에서 소속학과 컬럼값별로 그룹화를 진행한 후, 각 그룹별 레코드의 수를 카운트
- 그룹화 속성이 없는 경우, 전체 릴레이션을 한 개의 그룹으로 가정
728x90