뱅어돔 2024. 2. 21. 17:12

관계형 모델의 개념

릴레이션의 특성

데이터베이스 모델링 과정

 

개념적 데이터 모델링의 결과

 

논리적 데이터 모델링 단계

  • DBMS에서 사용하는 데이터 모델에 맞추어 데이터를 표현하는 과정
  • 데이터 정의 언어로 기술된 개념 스키마 생성
  • 관계형 모델(relational model)
    1969년 에드가 F. 코드에 의해 제안
    릴레이션(relation)으로 데이터를 표현하는 모델
    데이터 표현이 단순하고 직관적 구조화 모델
    현재 대다수 DBMS의 기초 -> 관계형 모델을 사용하는 관계형 DBMS(RDBMS)   ex) Oracle, DB2, PostgreSQL, MySQL, MSSQL 등

 

릴레이션의 구성

칼럼 값은 두 개의 메타 데이터(컴퓨터 과학과 + 전화번호)가 적용된 값

 

 

릴레이션의 특징

  • 레코드의 유일성: 중복된 레코드의 존재가 불가능
  • 레코드의 무순서성: 레코드의 순서는 의미가 없음
  • 칼럼의 무순서성: 칼럼은 순서가 없고, 이름과 값의 쌍
  • 칼럼값의 원자성: 모든 값들은 나눌 수 없는, 단 하나의 의미

 

키의 역할

릴레이션의 레코드를 유일하게 식별하는 값

 

 

키의 속성

 

 

키의 종류

  • 슈퍼키(super key): 유일성 만족
  • 후보키(candidate key): 유일성, 최소성 만족
  • 기본키(PK: primary key): 레코드의 구분을 위해 선택된 후보키
  • 외래키(FK:foreign key): 참조된 다른 릴레이션의 기본키

 

관계형 모델의 예

슈퍼키: 학과이름, {학과이름, 단과대학}, 주소, 전 화번호, {전화번호, 졸업학점} 등

후보키: 학과이름, 주소, 전화번호

기본키:학과이름

 

 

키의 참조

두 릴레이션에 포함된 레코드 간 연관성을 표현

 

 

관계형 모델의 제약조건

  • 영역제약 조건: 칼럼에 정의된 영역(domain)에 속한 값으로만 칼럼값이 결정
    영역: 실제 값이 가질 수 있는 범위를 한정시켜 놓은 것
    ex) 전화번호는 숫자만, 이름은 문자만, 학점은 150 이하
  • 키 제약조건: 키는 레코드를 고유하게 구별하는 값으로 구성
  • 개체무결성 제약조건: 어떠한 기본키 값도 널(null)이 될 수 없음
  • 참조무결성 제약조건: 반드시 존재하는 레코드의 기본키만 참조 가능

 

널(NULL)의 개념

‘없음’ 또는 ‘0’이 아닌 미지의 값에 대한 표현

  • 입력된 적이 없는 값
  • 적용 불가능한 값   ex) 연봉 칼럼에서 원화가 기준인데 달러로 써야 하는 경우 null

 

ERD의 변환

논리적 데이터 모델링

  • DBMS의 구현 모델에 맞춰 데이터를 표현하는 과정 
  • 데이터 정의 언어로 기술된 개념 스키마 생성
  • 논리적 데이터 모델링의 필요
    관계형 DBMS(RDBMS)의 구현 모델에 맞춰 데이터의 구조와 관계를 표현
    작성된 ERD를 RDBMS가 수용 가능하는 구조로 변환

 

관계형 모델로 변환 방법

단계 1. 개체 집합: 개체 집합은 릴레이션으로 변환

단계 2. 약한 개체 집합: 강한 개체 집합의 키 속성을 약한 개체 집합의 릴레이션에 포함

단계 3. 일대일 관계: 두 릴레이션 중에서 한 릴레이션의 기본키를 다른 릴레이션에서 외래키로 참조

단계 4. 일대다 혹은 다대일 관계: ‘일’ 쪽의 기본키를 ‘다’ 쪽 릴레이 션에서 외래키로 참조

단계 5. 다대다 관계: 관계 릴레이션을 생성하고, 두 릴레이션의 기본키를 각각 참조하는 외래키를 복합키 형태의 칼럼은 로 구성

단계 6. 다중값 속성: 릴레이션의 기본키를 참조하는 외래키와 다중 값 속성으로 별도의 릴레이션으로 구성 단계 7. 관계 집합의 속성: 외래키가 위치한 릴레이션의 칼럼으로 삽입

 

ER 다이어그램의 변환

일대다
다대다

다대다: 관계 집합이 하나의 릴레이션으로 만들어짐

일대일 + 약한 개체 관계

일대일: 레코드의 개수가 적은 쪽으로 FK가 가는 것이 나음

약한 개체 집합: 참조되는 외래키가 그 테이블의 기본키가 됨 -> 강한 개체가 사라졌을 때 무결성 조건에 의해 함께 삭제되도록

 


 

데이터연산

관계연산의 개념

  • 관계형 모델을 기반으로 구성된 릴레이션을 사용하여 새로운 릴레이션을 생성하는 표현
  • 사용자의 관점에서 필요한 데이터를 릴레이션에서 추출하는 방법을 제공하는 도구
  • 관계 대수(relational algebra)
    관계 연산을 정의하는 방법
    주어진 릴레이션에서 필요한 릴레이션을 만드는 연산자(∪, ∩, -, σ, π, x, ⋈, ÷ , 집계함수 등)로 구성
    관계 대수 연산자는 새로운 임시 릴레이션을 생성
    연산자를 중첩하여 연산 처리 절차를 표현

 

관계대수연산자

셀렉트 연산 (시그마)

  • 주어진 릴레이션에서 조건을 만족하는 레코드를 갖는 릴레이션을 생성
  • 조건: aΘb 또는 aΘv
  • 조건의 결합: ∧(and), ∨(or)

 

셀렉트 연산의 예

 

 

프로젝트 연산

기술된 칼럼만 갖는 릴레이션으로 재구성

<컬럼리스트>: A1 , A2 , …, An와 같이 R에 존재하는 칼럼을 , (콤마)로 분리하여 기술

 

 

프로젝션 연산의 예

 

직위가 ‘부교수’인 교수의 교수이름을 출력

 

 

집합 연산자

  • 수학적 집합 이론에서의 이진 연산
    합집합: R ∪ S
    교집합: R ∩ S
    차집합: R – S
  • 릴레이션은 집합, 레코드는 집합에 포함된 원소
  • 집합 연산자 사용 조건
    릴레이션 R과 S의 차수가 동일
    차수: 한 릴레이션에 포함된 칼럼의 갯수
    -> 다르면 합집합이나 교집합 처리를 한 이후에 하나의 릴레이션으로 구성할 수 없음

    모든 i에 대해 R의 i번째 컬럼의 도메인과 S의 i번째 컬럼의 도메인이 반드시 동일
    -> 칼럼 1이 숫자이고 칼럼 2가 문자인데 이런 형식이 다를 경우 값 표현이 애매해짐

 

카티시언 프로덕트 연산

두 릴레이션에 포함된 레코드 간의 모든 조합을 생성하는 이항 연산자

 

 

조인 연산

두 릴레이션에서 조건을 만족하는 레코드를 결합한 레코드로 구성된 릴레이션을 생성

카티시언 프로덕트와 셀렉트 연산의 결합으로 처리

카티시언 프로덕트 + 셀렉트 연산
조인 활용

 

 

집계 함수 연산 (캘리그래프 g)

집계 함수를 값들의 집합 또는 레코드의 집합에 적용하는 연산

  • x( ): AVG, SUM, MIN, MAX, COUNT 등의 집계 함수
  • A: 집계 연산을 적용할 칼럼

 

집계 함수의 예

과목이 몇 개인지 count 연산

 

 

그룹 집계 함수

레코드 그룹화를 위해 집계 함수 연산자 앞에 그룹화 속성을 기술

  • B: 그룹의 기준이 되는 칼럼
  • x( ): 집계 함수
  • A: 집계 연산을 적용할 칼럼
  • R: 릴레이션

 

그룹 집계 함수 사용 예

학과 별로 교수가 몇 명인지