ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Database System_03
    Database 2023. 3. 27. 22:00

    데이터 모델의 개념

    데이터베이스의 과제

    • 기본 목적: 조직 내의 데이터를 한 곳에 모아 체계적으로 저장한 뒤 DBMS를 통해 구성원들이 데이터를 공유하는 것
    • 세가지 과제
      1. 데이터를 어떤 형태로 표현하고 저장할 것인가
      2. 저장된 데이터를 사용자들이 어떤 방법을 통해 이용할 수 있게 할 것인가
      3. 데이터베이스 내에 저장되는 정보들이 오류가 없도록 어떻게 관리할 것인가
    • 이 문제들을 다루는 개념이 데이터 모델(data model)

    데이터 모델 

    • 현실 세계에 존재하는 데이터, 정보를 컴퓨터 안에 표현하는 방식
    • 논리적 모델: 사용자의 눈으로 보았을 때 데이터가 어떤 모양으로 보이게 할 것인가
    • 물리적 모델: 데이터를 물리적으로 저장 할 때 어떻게 할 것인가

    계층형 데이터 모델(hierarchical data model)

    • 데이터들이 계층적 구조로 연결되었다고 보는 관점
    • 초기 DBMS 제품에서 많이 채택하던 모델
    • 장점: 구조가 간단하고 데이터의 수정, 검색이 용이
    • 단점: 검색 경로가 한정되고 삽입과 삭제 연산이 매우 복잡

    네트워크 데이터 모델(network data model)

    • 계층형 모델의 단점을 보완
    • 계층형 모델에서는 하나의 하위정보는 반드시 하나의 상위 정보와만 연결이 되는 반면 네트워크 모델에서는 하나의 하위정보가 여러개의 상위 정보와 연결이 될 수 있음
    • 하위정보에 대한 접근 경로를 다양하게 만들어서 보다 유연한 정보검색이 가능

    관계형 데이터 모델(relational data model)

    • E.F. Codd에 의해 제안
    • 정보 또는 데이터간 상하 개념이 존재 x
    • 상하 관계 뿐 아니라 정보/데이터간에 명시적인 연결 통로도 존재 x
    • 유연한 정보 검색이 가능한 대신 검색 속도는 계층형/네트워크 모델에 비해 떨어질 수 있음
    • 우리가 알고 있는 대부분의 DBMS 제품들은 관계형 모델을 채택

    데이터 모델의 역사

    관계형 데이터 모델

    1. 데이터를 어떤 형태로 표현하고 저장할 것인가 --> 데이터 구조
    2. 저장된 데이터를 사용자들이 어떤 방법을 통해 이용할 수 있게 할 것인가 --> 데이터 연산
    3. 데이터베이스 내에 저장되는 정보들이 오류가 없도록 어떻게 관리할 것인가 --> 데이터 무결성

    데이터 구조

    • 관계형 모델에서는 사용자에게 데이터가 마치 '테이블' 형태로 존재하는 것처럼 인식
    • 릴레이션(relation)
      • 데이터의 기본 관리 단위(오늘날은 테이블이라고 부른다.)
      • 데이터베이스는 이러한 릴레이션들의 집합

     

    • 속성(attribute)
      • 릴레이션의 열(column)을 가리키는 용어
      • 릴레이션에 저장되는 정보 항목의 이름
      • 속성의 이름은 사용자가 임의로 만들 수 있으며, 동일한 릴레이션 내에서는 중복 된 속성 이름이 존재하면 안된다. 
      • 릴레이션의 차수(degree): 릴레이션에 포함된 속성의 개수

     

    •  튜플(tuple)
      • 릴레이션에서 하나의 행(row)을 가리키는 용어
      • 학생 릴레이션에서 하나의 튜플은 한 명의 학생에 대한 정보를 담고 있음
      • 릴레이션의 카디널리티(cardinality): 릴레이션에 포함된 튜플의 수

     

    • 도메인(domain)
      • 릴레이션에서 각 속성에 저장될 수 있는 후보 값들의 집합 --> 예를 들면 성별이라는 속성 즉 attribute에 들어갈 도메인은 성별로 Male, Female 로 나누어져 있다. 이 외의 값이 입력 된다면 오류라고 판단
      • 릴레이션의 모든 속성은 자신이 속할 도메인과 연결
      • 도메인의 취지는 매우 좋지만 현실적으로 구현이 어려운 경우가 대부분

     

    • 스키마(schema)와 인스턴스(instance)
      • 스키마는 '구조'의 의미를 갖는 용어
      • 보통 데이터베이스 스키마, 릴레이션 스키마와 같이 다른 용어에 붙여서 사용
      • 데이터베이스 스키마: 데이터베이스의 구조를 말한다. 릴레이션과 릴레이션 간에는 어떤 관계가 있는지 등을 정의
      • 데이터베이스에 어떤 데이터가 저장되기 위해서는 먼저 데이터베이스 스키마가 정해져야 한다.
      • 데이터베이스 인스턴스: 특정 시점에서 보았을 때 데이터베이스 안에 저장된 데이터들의 집합
      • 데이터베이스 스키마는 구조이기 때문에 잘 변하지 않는다. 그러나 데이터베이스 인스턴스는 데이터의 입력, 수정, 삭제가 일어날 때 마다 변화된다. 

     

    용어의 변화

    릴레이션의 특징

    • 속성의 원자성
      • 릴레이션의 각 튜플의 특정 속성은 원자값(atomic value)을 가져야 한다
      • 원자값이란 더 이상 쪼개면 의미를 상실하는 입력값을 의미

    • 튜플의 유일성
      • 릴레이션에는 중복되는 튜플이 입력되어서는 안된다는 성질
      • 중복된 튜플이 존재하게 되면 잘못된 질의 결과를 도출

    • 튜플의 무순서 성질
      • 릴레이션에 저장되는 튜플에는 순서라는 개념이 없다
      • 튜플의 순서만 다른 두 릴레이션에서 얻어 낼 수 있는 정보의 양은 동일하기 때문

    • 속성의 무순서 성질
      • 릴레이션의 속성에는 순서의 개념이 없다

    • 속성 이름의 유일성
      • 동일한 릴레이션 내에 같은 이름을 가진 속성이 중복해서 존재할 수 없다
      • 같은 이름을 가진 속성이 둘 있다고 하면 두 개 속성의 값을 구분해서 다룰 수 있는 방법이 없기 때문
      • 서로 다른 릴레이션 A와 릴레이션 B 사이에는 같은 이름의 속성이 존재할 수 있다. 

    관계형 데이터 연산

    • 저장된 데이터를 사용자들이 어떤 방법을 통해 이용할 수 있게 할 것인가의 문제 = 사용자들에게 어떤 연산(operation)을 제공할 것인가의 문제
    • 릴레이션을 다루기 위한 연산이 필요(덧셈, 뺄셈, 곱셈, 나눗셈 등과 같은)
    • E.F.커드는 릴레이션에 대한 연산을 집합론의 관점에서 정의 --> 관계 대수(relational algebra) 와 관계 해석(relational calculus)
    • 두 개의 이론에서 제시한 연산은 동등한 처리 능력을 가짐

    릴레이션에 대한 연산의 실행 과정

    "20대 사원중 연봉 6500 이상을 받는 사원의 이름과 나이, 연봉을 보이시오"

    1. 테이블 형태의 릴레이션에서 우리가 원하는 정보를 얻을 수 있는 방법(연산)이 존재한다
    2. 원하는 정보를 얻기 위해 테이블에서 행(row)을 추출하는 연산과 열(column)을 추출하는 연산이 사용되었다
    3. 정보를 추출하는 연산에서 연산의 대상도 테이블 형태의 릴레이션이고, 연산의 결과도 테이블 형태의 릴레이션이다. 

    데이터 무결성 규칙

    데이터 무결성(data integrity)

    • 저장되는 데이터가 정확하고 유효한 상태로 유지되는 성질
    • DBMS가 데이터 무결성을 보장할 수 있어야 한다. 
    • 모든 경우에 대해 DBMS로 하여금 무결성을 유지하도록 하는 것은 현실적으로 불가능에 가깝다. 
    • DBMS가 지켜야 하는 최소한의 무결성에 대한 규칙을 정하여 이를 DBMS를 개발할 떄 적용 --> 개체 무결성 규칙(entity integrity rule)과 참조 무결성 규칙(referential integrity rule)

    개체 무결성 규칙(entity integrity rule)

    • 릴레이션에 저장되는 튜플들은 그 튜플을 다른 튜플과 구분하는데 사용하는 속성을 가지고 있음 --> 기본 키(primary key)
    • 개체 무결성 규칙
      • "릴레이션의 기본키 속성에는 널값이 입력될 수 없다."

    개체 무결성 규칙이 깨어진 학생 릴레이션

    • 널(null)값
      • 널값은 '없음'을 나타내는 값이기 때문에 공백이나 0과는 다름
      • 예를 들면 학번, 주민등록번호, 학생 이름 등의 속성에는 널값이 허용되면 안되지만 학생의 취미, 추가 연락처 등의 속성에는 널값이 허용될 수 있다. 

    참조 무결성 규칙(referential integrity rule)

    사원의 취미 릴레이션의 사원번호가 사원 릴레이션의 사원번호를 참조

    • DBMS에게 이 참조 관계를 알려주면 참조 무결성을 지킬 수 있다.
      • 사원의 취미 릴레이션에서 '사원번호' 속성을 외래키(foreign key)라고 한다
    • 참조 무결성 규칙
      • "참조 관계에 있는 두 릴레이션의 데이터 사이에는 일관성이 있어야 한다"

    기본키와 외래키의 예

    • 기본키: 개체 무결성 규칙과 관련
    • 외래키: 참조 무결성 규칙과 관련

    'Database' 카테고리의 다른 글

    Database System_05  (0) 2023.04.14
    Database System_04  (0) 2023.03.28
    Database System_02  (0) 2023.03.26
    Database System_01  (0) 2023.03.24
Designed by Tistory.