본문 바로가기
Programming/PHP+MySQL(Database)

관계형 데이터 모델_DBMS (1)

by 어깨 :) 2023. 4. 3.
728x90

1. 관계 데이터 모델

1) 데이터 모델링 개념
▪   데이터 모델링(data modeling)
✓  현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정
✓  데이터베이스 설계의 핵심 과정


▪   2단계 데이터 모델링
✓  개념적 데이터 모델링(conceptual modeling)
✓  현실 세계의 중요 데이터를 추출하여 개념 세계로 옮기는 작업
✓  논리적 데이터 모델링(logical modeling)
✓  개념 세계의 데이터를 데이터베이스에 저장하는 구조로 표현하는 작업

 

 

 

2) 관계형 모델의 개념

▪  장점 : 구조적인 단순성으로 사용자가 프로그래밍 작성 시에 데이터의 물리적인 저장 
구조를 프로그램 상에 은폐함으로써 논리적 구조만을 고려하면 됨

 

▪  1970년 E. F. Codd에 의해 제안
▪  기존의 계층형과 네트워크 모델이 갖는 한계점들을 해결함
▪  데이터를 2차원 테이블 형태인 릴레이션으로 표현
▪  릴레이션에 대한 제약조건(constraints)과 관계 연산을 위한 관계대수(relational algebra)를 정의

 

 

 

 

3) 데이터 모델(data model) 개념
▪   데이터 모델(data model)
✓   데이터 모델링의 결과물을 표현하는 도구


▪   개념적 데이터 모델
✓  사람의 머리로 이해할 수 있도록 현실 세계를 개념적 모델링하여 데이터베이스의 개념적 구조로 표현하는 도구 예) 개체-관계 모델


▪   논리적 데이터 모델
✓  개념적 구조를 논리적 모델링하여 데이터베이스의 논리적 구조로 표현하는 도구 
예) 관계 데이터 모델

 

 

 

 

4) 데이터 모델링 과정

 

 

▪   요구사항 수집 방법
✓  실제 문서를 수집하고 분석한다.
✓  담당자와의 인터뷰나 설문조사를 통해 요구사항을 직접 수렴한다.
✓  비슷한 업무를 처리하는 기존의 데이터베이스를 분석한다.
✓  각 업무와 연관된 모든 부분을 살펴본다.

 

▪    개념적 모델링(conceptual modeling)
✓  요구사항을 수집하고 분석한 결과를 토대로 업무의 핵심적인 개념을 구분하고 전체적인 뼈대를 만드는 과정
✓  즉, 개체(entity)를 추출하고 각 개체들 간의 관계를 정의하여 ER 다이어그램 (ERD, Entity Relationship Diagram)을 만드는 과정
✓  개념적 모델은 실세계의 정보 환경의 개관을 이해하기 쉽게 보여줌
✓ 소프트웨어와 하드웨어에 독립적이다. 이는 개념 모델을 설계할 시에 모델을 구현하는데 목표가 되는 DBMS가 어떠한 모델인지 또한 어떠한 하드웨어 기종에서 구현되는지를 고려하지 않아도 됨을 의미
✓  소프트웨어나 하드웨어를 다른 형태로 바꾸어도 개념 모델의 설계에는 아무런 영향을 미치지 않음

 

 

 

 

▪    논리적 모델링(logical modeling)
✓ 개념적 모델링에서 만든 ER 다이어그램을 사용하고자 하는 DBMS에 맞게 사상(매핑, mapping)하여 실제 데이터베이스로 구현하기 위한 모델을 만드는 과정
✓ 특정 DBMS가 선정되면 앞서 설계된 개념적 모델을 선정된 DBMS에 맞도록 변형
✓ 논리 모델은 데이터베이스의 소프트웨어에 독립적(software independent)이지 못함.
✓  데이터베이스 관리 시스템을 바꾸면 내부적 모델의 구성도 바뀐 DBMS의 특성과 요구사항에 적합할 수 있도록 바뀌어야 함.

✓ 논리 모델은 저장 장소와 액세스 방법을 매우 자세히 서술하는 망, 계층 데이터베이스 모델에서는 매우 중요
✓ 대부분의 데이터베이스 모델에서는 데이터 액세스 방식과 정의에 있어서 사용하는 사람이 일일이 지시하지 않아도 원하는 일을 모두 할 수 있는 투명성(transparency)을 보장하기 때문에 망, 계층 데이터베이스 관리 시스템보다는 더 선언적.
✓  논리 모델은 어떠한 컴퓨터를 사용한다 하여도 영향을 받지 않음.

 

 

 

 

 

▪   물리적 모델링(Physical Modeling)
✓  데이터가 디스크와 같은 저장 매체에 저장되는 것을 기술하는 것과 같이 추상화의 가장 하위 단계
✓  물리적 모델은 저장장치에 있는 데이터에 접근하기 위해 저장장치와 액세스 방법 등의 자세한 정의가 필요
✓ 데이터베이스 설계를 구현하기 위해 사용되는 소프트웨어 및 하드웨어의 자세한 지식이 요구되므로 컴퓨터가 다루는 저장장치의 타입과 데이터베이스 관리 시스템과 같은 소프트웨어가 요구하는 저장 구조를 자세히 아는 것이 필요, 소프트웨어와 하드웨어에 종속적

 

 

 

 


2. ER 모델

ER(Entity-Relationship model)은 개념적 데이터 모델의 대표적인 모델로 개체와 개체 간의 관계를 이용하여 현실세계를 개념적 구조로 표현하는 방법이다.

여기서 말하는 개체(entity)는 어떠한 각자만의 의미를 가진 동물이나 사물 또는 형태가 없는 개념과 사건을 뜻한다.

이러한 개체에는 개체를 나타내는 특성이 있을 텐데 그 특성을 속성(attribute)라 한다.

 

 

 

1) 개요
▪    1976년 Chen에 의해 제안된 ER 모델은 개념적 모델에서 가장 일반적으로 사용되고 있는 모델로서 그 모델이 지니고 있는 단순성 때문에 현재 광범위한 응용 분야에서 사용


▪     ER 모델 목적
✓  데이터에 대해 관리자, 사용자, 프로그래머들이 서로 다르게 인식되고 있는 뷰(view) 
들을 하나로 통합할 수 있는 단일화된 설계안을 만들기 위함
✓  서로 다른 뷰들을 충족시킬 수 있는 데이터 처리와 제약 조건(constraints)등의 요구 
사항들을 정의하기 위함


▪   ER 모델은 ER 도표(ER Diagram: ERD)로 표현


▪   ERD는 최종 사용자의 관점에서 데이터베이스를 개념적으로 묘사한 것으로서, 엔티티 
(entity), 관계(relationship), 그리고 속성(attribute)들의 구성 요소로 구성

 

 

2) 엔티티(Entity) 
▪   개체(entity)는 사람, 사물, 장소, 개념, 사건과 같이 유무형의 정보를 가지고 있는 독립적인 실체 
를 의미.
▪    개체는 비슷한 속성을 가진 개체 타입(entity type)을 구성, 개체 집합(entity set)으로 묶임
▪    개체의 특징
✓  유일한 식별자에 의해 식별이 가능하다.
✓  꾸준한 관리를 필요로 하는 정보다.
✓  두 개 이상 영속적으로 존재한다.
✓  업무 프로세스에 이용된다.
✓  반드시 자신의 특징을 나타내는 속성을 포함한다.
✓  다른 개체와 최소 한 개 이상의 관계를 맺고 있다.

 

 

3) 속성(Attribute)
▪   속성(attribute)은 엔티티의 구조를 나타내는 특성을 의미, 개체가 가진 성질.
▪   ERD에서 속성은 엔티티 타입을 나타내는 사각형에 실선으로 연결된 타원형으로 표현되며 각 타원형은 고유의 속성 이름을 가짐


▪   각 속성은 가질 수 있는 값(value)들의 범위가 있는데 이를 그 속성의 도메인(domain) 의미.
✓  각 속성이 가질 수 있는 값은 도메인 이외의 값을 갖지 못함
✓  일반적으로 서로 다른 엔티티 집합에 정의된 속성들은 같은 도메인을 공유.


▪   속성의 ER 다이어그램 표현
✓  속성은 기본적으로 타원으로 표현하며 개체 타입을 나타내는 직사각형과 실선으로 연결
✓  속성의 이름은 타원의 중앙에 표기
✓  속성이 개체를 유일하게 식별할 수 있는 키일 경우 속성 이름에 밑줄

 

 

4) 관계(Relationship)
▪   관계(relationship) : 개체 사이의 연관성을 나타내는 개념
▪   차수 : 관계의 차수(degree)는 그 관계에 참여하는 엔티티 타입들의 개수를 의미

 

▪  참여 제약 조건
✓  참여 제약 조건은 개체 집합 내 모든 개체가 관계에 참여하는지 유무에 따라 전체 참여와 부분 참여로 구분할 수 있음
✓  전체 참여는 개체 집합의 모든 개체가 관계에 참여하고, 부분 참여는 일부만 참여.
✓  전체 참여를 (최솟값, 최댓값)으로 표현할 경우 최솟값이 1 이상으로 모두 참여한다는 뜻이고, 부분 참여는 최솟값이 0 이상

 

 

▪   카디날리티 : 관계 대응수(cardinality) : 두 개체 타입의 관계에 실제로 참여하는 개별 개체 수를 의미
▪   관계 대응수에 따른 관계 타입의 유형

 

▪   약한 개체 타입과 식별자
✓  독립적으로 식별할 수 있는 개체를 가지고 있는 개체 타입을 개체 혹은 강한 개체 (strong entity) 타입
✓  이와 반대로 상위 개체 타입이 결정되지 않으면 개별 개체를 식별할 수 없는 종속된 개체 타입을 약한 개체(weak entity) 타입
✓  약한 개체 타입은 독립적인 키로는 존재할 수 없지만 상위 개체 타입의 키와 결합하여 약한 개체 타입의 개별 개체를 고유하게 식별하는 속성을 식별자(discriminator) 혹은 부분키(partial key)라고 함.

 

 

https://mangkyu.tistory.com/27

 

[Database] 6. 데이터 모델링(Data Modeling)

[ 본 사진은 쉽게 배우는 오라클로 배우는 데이터베이스 개론과 실습 ppt에서 캡처했습니다. ]이번 장에서는 데이터 모델링(Data Modeling), ER 모델(ER Model)에 대해 알아보겠습니다. 1. 데이터 모델링

mangkyu.tistory.com

 

728x90