티스토리 뷰

database

[database] 관계형 모델

tonirr 2021. 3. 22. 22:16
  • 관계형 모델의 개념
    • 릴레이션의 특성
      • 데이터베이스 모델링 과정
        • 사용자 요구사항 분석 --데이터 및 업무--> 개념적 데이터 모델링 --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이 아닌 미지의 값에 대한 표현
      • 입력된 적이 없는 값
      • 적용 불가능한 값
  • 논리적 데이터 모델링
    • 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
링크
«   2025/02   »
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
글 보관함