코딩공부/분석

[데이터 분석]데이터 모델링 이해

리버0827 2022. 11. 2. 14:45
728x90
반응형

1. 관계형 데이터 모델 이해

 

현실 세계와 데이터베이스 관계
데이터 모델링 내용
개념적 모델링 추상화 수준이 높고, 업무 중심적이고 포괄적인 수준의 모델링 진행
논리적 모델링 시스템으로 구축하고자 하는 업무에 대해 Key 속성, 관계 등을 정확하게 표현, 재사용성이 높음
물리적 모델링 실제로 데이터베이스에 이식할 수 있도록 성능, 물리적인 성격을 고려하여 설계

 

관계 데이터 모델이 큰 성공을 거둔 요인
  • 바탕이 되는 데이터 구조로서 간단한 테이블(릴레이션)을 사용
  • 중첩된 복잡한 구조가 없음
  • 집합 위주로 데이터를 처리
  • 숙련되지 않은 사용자도 쉽게 이해할 수 있음
  • 표준 데이터베이스 응용에 대해 좋은 성능을 보임
  • 다른 데이터 모델에 비해 이론이 잘 정립되어 있음
  • 관계 데이터베이스 설계와 효율적인 질의 처리 면에서 뛰어난 장점을 가짐
관계 데이터 모델
  • 관계 데이터 모델은 동일한 구조(릴레이션)의 관점에서 모든 데이터를 논리적으로 구성
  • 선언적인 질의어를 통한 데이터 접근을 제공
  • 응용 프로그램은 데이터베이스 내의 레코드들의 어떠한 순서와도 무관하게 작성됨
  • 관계 데이터 모델의 목적은 높은 데이터 독립성을 제공하는 것
  • 사용자는 원하는 데이터(What)만 명시하고, 어떻게 이 데이터를 찾을 것인가(How)는 명시할 필요가 없음
  • 논리적으로 연관된 데이터를 연결하기 위해서 링크나 포인터를 사용하지 않음

 

기본적인 용어
  • 릴레이션(relation) : 2차원의 테이블(스프레드 시트와 유사)
  • 레코드(record) : 릴레이션의 각 행
  • 튜플(tuple) : 레코드를 좀더 공식적으로 부르는 용어
  • 애트리뷰트(attribute) : 릴레이션에서 이름을 가진 하나의 열
도메인(Domain)
  • 한 애트리뷰트에 나타날 수 있는 값들의 집합
  • 각 애트리뷰트의 도메인의 값들은 원자값
  • 프로그래밍 언어의 데이터 타입과 유사함
  • 동일한 도메인이 여러 애트리뷰트에서 사용될 수 있음
  • 복합 애트리뷰트나 다치 애트리뷰트는 허용되지 않음
도메인 정의
- CREAT DOMAIN EMPNAME CHAR(10)
- CREAT DOMAIN EMPNO INTEGER
- CREAT DOMAIN DNO INTEGER

 

차수(degree)와 카디널리티(cardinality)
  • 차수 : 한 릴레이션에 들어 있는 애트리뷰트(열)들의 수
  • 유효한 릴레이션의 최소 차수는 1
  • 카디널리티 : 릴레이션의 튜플(행) 수
  • 유효한 릴레이션은 카디널리티 0을 가질 수 있음
  • 릴레이션의 차수는 자주 바뀌지 않음
  • 릴레이션의 '카디널리티'는 시간이 지남에 따라 계속해서 변함
공식적인 용어 자주 사용되는 용어 파일 시스템의 용어
릴레이션  테이블 파일
튜플 행/ 레코드 레코드
애트리뷰트 필드

 

널 값(null value)
  • '알려지지 않음' 또는 '적용할 수 없음'을 나타내기 위해 널 값을 사용
  • 예: 사원 릴레이션에 새로운 사원에 관한 튜플을 입력하는데, 신입사원의 DNO(부서번호)가 결정되지 않을 수 있음
  • 널 값은 숫자 도메인의 0이나 문자열 도메인 공백문자 또는 공백문자열과 다름
  • DBMS들마다 널 값을 나타내기 위해 서로 다른 기호를 사용함
릴레이션 스키마(relation schema)
  • 릴레이션의 이름과 릴레이션의 애트리뷰트들의 집합
  • 릴레이션을 위한 틀(framework)
  • 표기법
  • 릴레이션 이름(애트리뷰트1, 애트리뷰트2, ... 애트리뷰트N)
  • 기본키 애트리뷰트에는 밑줄 표시
  • 내포(intension)라고 함
릴레이션 인스턴스(relation instance)
  • 릴레이션에 어느 시점에 들어 있는 튜플들의 집합
  • 시간의 흐름에 따라 계속 변함
  • 일반적으로 릴레이션에는 현재의 인스턴스만 저장됨
  • 외연(extension)이라고 함

관계 데이터베이스(relational database) 스키마 : 하나 이상의 릴레이션 스키마들로 이루어짐 

관계 데이터베이스 인스턴스 : 릴레이션 인스턴스들의 모임으로 구성됨

                                              : 테이블은 데이터를 저장하는 객체로서 관계형 데이터베이스의 기본 단위이다

                                              : 모든 자료는 테이블에 등록이 되고, 테이블로부터 원하는 자료를 꺼내 올 수 있다 (SQL이용)

                                              : 테이블은 어느 특정한 주제와 목적으로 만들어지는 일종의 집합이다

 

테이블 구조
용어 설명
테이블
(Table)
행과 칼럼의 2차원적인 구조를 가진 데이터의 저장 장소이며,
데이터 베이스의 가장 기본적인 구성요소
컬럼 / 열
(Column)
2차원 구조를 가진 테이블에서 세로 방향으로 이루어진 하나하나의 특정 속성 (더이상 나눌 수 없는 특성)
로우 / 행
(Row)
2차원 구조를 가진 테이블에서 가로 방향으로 이루어진 연결된 데이터 (현장에서는 레코드라고도 한다)

 

TABLE 관계
용어 설명
정규화(Normalization) 테이블을 분할하여 데이터의 정합성을 확보하고,
불필요한 중복을 줄이는 프로세스
기본키 (Primary Key, 주 식별자) 테이블에 존재하는 각 행을 한 가지 의미로 특정할  수 있는 한 개 이상의 컬럼
외래키(Foreign Key, 외부 식별자) 다른 테이블의 기본키로 사용되고 있는 관계를 연결하는 칼럼

 

2. ERD 이해

ERD(Entity Realtionship Diagram)
  • 테이블 간 서로의 상관관계를 그림으로 도식화한 것을 E-R 다이어그램이라고하며, 간략히 ERD라고 한다
  • ERD의 구성요소는 엔터티(Entity), 관계(Relationship), 속성(Attrubute) 3가지이다.
  • 현실 세계의 데이터는 이 3가지 구성요소로 모두 표현이 가능하다
논리 모델과 물리 모델

 

논리모델 물리모델
엔터티 테이블
속성 컬럼
식별자 - 주식별자 (기본키) Primary Key
식별자 - 보조 식별자 Unique Index
Non - Unique Index
식별자 - 외부 식별자(외래키) Foreign Key
도메인 Check Constraint

 

데이터 관계
  • 관계란 두 개의 엔터티 사이의 논리적인 연결 즉 엔터티와 엔터티가 존재의 형태나 행위로서 서로에게 영향을 주는 형태를 말한다
  • 비즈니스에서 중요한 것(동사)을 표현
  • 일반적으로 두 엔터티 사이에 존재하나, 한 엔터티 스스로 관계를 가질 수도 있음(recursive / reflexive relationship)
  • 하나의 관계는 두 가지 관점을 가짐(Relationship membership)
  • 양쪽 측면에서 역할 명을 지정할 수 있음
데이터 관계의 요소

  1. 멤버쉽(Membership)

    • 엔터티 간의 관계에 대한 구체적인 서술

   2. 카디널리티(Cardinality)

 

   3. 관계의 참여도(Optionality)

 

3. 키에 대한 이해

 

릴레이션 키
  • 각 튜플을 고유하게 식별할 수 있는 하나 이상의 애트리뷰트들의 모임
  • 슈퍼키(superkey), 후보키(candidate key), 기본키(primary key), 대체키(alternate key), 외래키(foreign key)

 

슈퍼키
  • 한 릴레이션 내의 특정 튜플을 고유하게 식별하는 하나의 대트리뷰트 또는 애트리뷰트들의 집합
  • 예 : 신용카드 회사의 고객 릴레이션에서 (신용카드번호, 주소) 또는 (주민등록번호, 이름) 또는 (주민등록번호)
  • 튜플들을 고유하게 식별하는데 꼭 필요하지 않은 애트리뷰트들을 포함할 수 있음 
기본키
  • 한 릴레이션에 후보키가 두 개 이상 있으면 설계자 또는 데이터베이스 관리자가 이들 중에서 하나를 기본키로 선정함
  • 예 : 신용카드 회사의 고객 릴레이션에서 신용카드번호와 주민등록번호가 후보키가 될 수 있음, 이 중 신용카드 번호를 기본키로 선정
  • 자연스러운 기본키를 찾을 수 없는 경우에는 레코드 번호와 같이 종종 인위적인 키 애트리뷰트를 릴레이션에 추가할 수 있음 
기본키 선정 시 고려사항
  • 애트리뷰트가 항상 고유한 값을 가질 것인가
  • 애트리뷰트가 확실하게 널 값을 갖지 않을 것인가
  • 애트리뷰트의 값이 변경될 가능성이 높은 애트리뷰트는 기본키로 선정하지 말 것
  • 가능하면 작은 정수 값이나 짧은 문자열을 갖는 애트리뷰트
  • 가능하면 복합 기본키를 피할 것

 

대체키
  • 기본키가 아닌 후보키
  • 예 : 신용카드 회사의 고객 릴레이션에서 신용카드번호를 기본키로 선정하면 주민등록번호는 대체키
외래키
  • 어떤 릴레이션의 기본키를 참조하는 애트리뷰트
  • 관계 데이터베이스에서 릴레이션들 간의 관계를 나타내기 위해서 사용됨
  • 왜래키 애트리뷰트는 참조되는 릴레이션의 기본키와 동일한 도메인을 가져야 함
  • 자신이 속한 릴레이션의 기본키의 구성요소가 되거나 되지 않을 수 있음
728x90
반응형