CS/데이터베이스

Ch6. Entity-Relationship Model

Frankie 2020. 1. 29. 23:29

챕터 7은 개체-관계 모델(E-R 모델)에 배우는데

첫 번째 강의 개체, 관계, 속성에 대해 배웠다

개체는 다른 객체와 구별되어 존재하는 하나의 객체이고

개체들은 속성을 갖고 있다

개체 집합은 같은 특성을 가지고 있는 같은 타입의 개체들의 집합이고

관계 집합은 관계(각 개체들의 순서쌍)의 집합이다

관계 차수는 관계 집합의 관계에 참여하는 개체 집합의 수이다

 

속성은 타입이 있는데

단순 속성 - 더 이상 나누어지지 않는 속성

복합 속성 - 더 작은 다른 속성으로 나누어질 수 있다->사용하면 일부만을 참조할 때 좋고 모델링을 명확하게 할 수 있다

단일 값  속성 - 특정 개체에 대해서 하나의 값을 가지는 속성

다중 값 속성 - 여러 개의 값을 가질 수 있는 속성

유도(derived) 속성 - 저장되지 않고 필요할 때마다 다른 속성을 이용해서 계산되는 속성

 

E-R 모델에서 제약 조건은

Mapping cardinality constraints - 관계 집합을 통해서 다른 개체와 연결될 수 있는 개체의 수

4가지 유형

one to one - A 개체 집합의 하나의 개체는 B 개체 집합의 하나의 개체와 관계

one to many - A 개체 집합의 하나의 개체는 B 개체 집합에 있는 0 또는 그 이상의 개체들과 관계

many to one - A 개체 집합의 개체들은 B 개체 집합에 있는 하나의 개체와 관계

many to many - A 개체 집합도 B 개체 집합도 각각의 개체들이 상대편에 있는 개체 집합의 개체들과 여러 개의 관계

 

E-R 모델에서 Key의 개념은

어떤 개체 집합의 수퍼키는 그 값이 각 개체를 유일하게 결정하는 하나 이상의 속성 집합이고 개체 집합의 후보키는 최소 수퍼키이다

관계 집합에도 key가 있는데 관계 집합의 수퍼키는 관계 집합에 참여하는 개체들의 기본키의 조합으로 구성된다

후보키를 선택할 때 관계 집합의 mapping cardinality를 고려한다

 

두 번째 강의에서는 E-R 다이어그램과 약한 개체 집합에 대해서 공부했는데

E-R 다이어그램은

E-R 다이어그램

이렇게 나타내지고

관계 집합의 속성은

관계 집합의 속성

관계 집합 위 사각형을 만들고 안에다가 속성이름을 적어서 나타낸다

개체의 역할은 관계에서 개체가 행하는 기능인데

개체의 역할

개체 집합과 관계 집합에 있는 선 위에 레이블을 붙여서 역할의 이름을 써준다

Cardinality constraints는

Cardinality constraints

이렇게 나타내는데 one은 화살표로 표현하고 many는 직선으로 표현한다

그리고 Participation constraints는 개체 집합에 있는 모든 개체들이 관계 집합에 있는 적어도 하나의 관계에 참여하면 전체 참여이고 어떤 개체들은 관계 집합의 어떤 관계에도 참여하지 않는 건 부분 참여이다.

 

Cardinality limits는

Cardinality limits

이렇게 나타내는데 선 위에 최소,최대값을 표현하고 *은 참여하는 릴레이션에 제한이 없다는 뜻이다

 

Ternary relationship은

하나의 관계 집합에 두 개의 개체 집합이 참여하는 것이 아닌 두 개 이상이 참여하는 것이다

 

약한 개체 집합은 기본키를 가지고 있지 않은 개체 집합이고 다른 개체 집합에 의존하게 되는데 약한 개체 집합과 연관되는 개체 집합을 identifying 개체 집합이라고 한다

identifying 관계는 약한 개체 집합과 identifying 개체 집합 사이의 관계이고 약한 개체 집합의 모든 개체들은 identifying relationship에 참여해야 한다

identifying 관계는 두 개의 선으로 만들어진 다이아몬드로 표현되고

약한 개체 집합의 구별자는 점선을 사용해서 밑줄로 표현한다

약한 개체 집합의 기본키는 identifying 개체 집합의 기본키와 약한 개체 집합의 구별자를 합쳐서 만들어진다

 

세 번째 강의는 E-R 다이어그램을 관계형 스키마로 나타내는 것에 대해 공부했는데

단순 속성으로 이루어진 개체를 표현하는 방법은

강한 개체 집합은 똑같은 속성을 가지고 있는 릴레이션 스키마로 표현하는 것이 가능한데

어떤 개체 집합의 이름이 E이고 a1부터 an까지 속성을 가지고 있다면 동일한 릴레이션 스키마로 변환할 수 있다

그 릴레이션 스키마는 a1부터 an까지의 속성을 가지고 개체 집합에서 기본키를 이루었던 속성이 릴레이션 스키마의 기본키가 된다

개체 집합에 각 하나의 개체들이 릴레이션 테이블에서 하나의 튜플이 된다

약한 개체 집합은 identfiying 강한 개체 집합의 기본키를 포함하는 테이블로 표현할 수 있다

어떤 개체 집합 a가 a1부터 an까지 단순 속성만 가지는 약한 개체 집합이라 할 때 a가 의존하는 강한 개체 집합 b가 기본키로 b1부터 bn까지의 속성으로 이루어져 있다 가정

이 때 약한 개체 집합은 a1부터 an까지의 속성과 b1부터 bn까지의 속성으로 하나씩 대응하는 열을 가지고 있는 a라는 이름의 릴레이션 스키마로 표현할 수 있다

약한 개체 집합의 식별자와 강한 개체 집합의 기본키를 합한 것은 스키마의 기본키 역할을 한다

 

관계 집합을 표현하는 방법은 

R이라는 관계 집합이 있고 a1부터 an을 관계 집합 아래 참가하는 각각의 개체 집합의 기본키의 합집합으로 구성된 속성의 집합이라 하고 관계 집합 R을 설명하는 b1부터 bn까지의 속성을 가지고 있다 할 때 관계 집합 R은 a1~an 속성과 b1~bn 속성을 가지는 릴레이션 스키마 R로 표현할 수 있다

기본키는 다음과 같이 선택할 수 있다

Many to many – 참여하는 두 개체 집합의 기본키와 관계 집합을 설명하는 속성을 가진 릴레이션 스키마로 표현

Many to one or one to many – many쪽이 전체 참여 조건을 만족시킬 경우 many쪽의 테이블에 extra attribute추가하여 표현

-> 여기에 extra attributeone의 기본키를 포함

One to one – 양쪽 relation 모두를 many to one이나 one to many 관계 집합의 many 쪽 역할을 하도록 선택

 

복합 속성으로 이루어진 개체를 스키마로 표현하는 방법은 각각의 복합 속성을 별도의 속성으로 만들어서 평평하게 만들어 줄 수 있다

 

다중 값 속성으로 이루어진 개체를 스키마로 표현하는 방법은 어떤 개체 집합 E가 다중 값 속성 M을 가지고 있을 때, M은 별도의 스키마 EM으로 표현하고 스키마의 모든 속성을 포함하는 속성 집합으로 기본키를 만든다

개체 집합이 두 개의 속성으로 구성되어 있는데 하나는 기본키 속성이고 하나는 다중 값 속성일 때는 이 개체 집합에 대한 릴레이션은 만들지 않고 다중 값 속성에 관련된 속성과 기본키 속성만 가지는 릴레이션 스키마를 만든다

 

E-R 모델 디자인 이슈로는 개체 집합의 속성의 사용에 대해 비교하는 것으로 어떤 것을 개체로 만들지 속성으로 만들 지에 대한 것이다. 두 개체 집합 사이에 어떤 일이 일어나는 지 보여줄 때 관계 집합을 사용한다

Relationship의 속성 배치는 relationship cardinality가 영향을 미친다(one to one, one to many, many to many)

non-binary relaitonship을 binary 폼으로 바꾸는 것은

일반적으로 임의의 non-binary relationship은 인위적인 개체 집합을 만들어서 binary relationship으로 표현할 수 있다

non-binary relationshipbinary 폼으로 바꿀 수 있지만 이게 항상 바람직하지는 않다

non-binary relationship binary 폼으로 바꾸기 위해서는 제약 조건을 변환해주어야 한다

하지만 non-binary relationship에 대한 제약 조건을 binary relationship에 대한 제약 조건으로 변환 방법이 없을 수 있다

binarynon-binary relationship으로 바꿔줄 수는 있지만 디자인이 더 복잡해지고 추가적인 저장공간을 요구하게 된다

 

마지막 강의는 확장된 E-R 모델에 대해서 배웠는데

확장된 E-R 기능에는

1. Specialization : 어떤 개체 집합 내에서 하위 그룹을 표시해가는 과정

Specialization

2. Generalization : bottom-up 디자인 프로세스로 동일한 기능을 공유하는 여러 개체 집합들을 higher-level 개체 집합으로 결합해 나가는 것

Generalization

Specialization 제약 조건은 어떤 개체들이 주어진 하위 단계 개체 집합의 멤버가 될 수 있는지에 대한 제약 조건인데

        Condition-defined – 개체가 명확한 조건을 만족하는지 아닌 지에 의해 멤버가 될 수 있는지 평가

        User-defined – 멤버십 조건에 제약을 받지 않고 결정을 내릴 책임자가 개인의 기준에 의해서 결정

이 있다

Generalization 제약조건은

        Disjoint – 하나의 개체는 오직 하나의 하위 레벨 개체 집합에 속해야 한다

        ->하나의 화살표에 여러 개의 개체 집합이 연결되어 표현 

        Overlapping – 하나의 개체는 하나 이 상의 하위 단계 개체 집합에 속할 수 있는 것

        ->각각의 화살표를 사용해서 표현

이 있다

Generalization 내에서 higher-level 개체 집합 내에 개체가 적어도 하나의 lower-level 개체 집합에 속해야 하는 지의 여부는 전체면 하나의 개체는 lower-level 개체 집합 중 하나의 개체 집합에 반드시 속해야만 하고 부분이면 하나의 개체는 lower-level 개체 집합 중 하나에 반드시 속할 필요 없다

 

E-R 모델의 한 가지 한계는 relationship 간의 relationship을 표현하지 못한다는 건데 관계를 통해서 relationship을 추상적인 개체로 취급하고 relationship간의 relationship을 허용해준다 그리고 relationship의 추상화를 새로운 개체로 만들어줄 수 있다

aggregation

Specializationrelation 스키마로 표현하는 방법은 2가지가 있는데

1. higher-level 개체를 위한 스키마를 만드는 것 - Lower-level 개체에 대한 스키마를 만드는데 lower-level 개체 집합과 연결된 higher-level 개체 집합의 기본키를 포함하고 lower-level 개체 집합의 속성을 가지는 relation 스키마를 만들면 된다(단점 - lower-level 개체의 스키마에 대한 정보를 가져올 때 lower-level 스키마에 해당하는 relation과 higher-level 스키마에 해당하는 relation에 두 번 접근해야 한다)

2. 개체 집합에 대해 개별적으로 각각의 스키마를 작성하는 것 - 자체 속성과 상속 받은 속성을 모두 포함하는 스키마가 된다(단점 - 정보가 중복되어 저장될 수 있다)

 

Aggregation에 상응하는 스키마 만드는 방법은

집계된 relationship의 기본키와 여기에 관련된 개체 집합의 기본 키, 그리고 이 relationship에 대한 속성으로 포함하게 된다

 

그리고 E-R 모델을 디자인 할 때 결정해야 될 것들과 E-R 모델에서 사용하는 표기법 정리는 ppt에 정리해두었다

 

이렇게 E-R 모델에 대해서 배웠는데 여태 배운 것 중에 난잡하고 정리가 잘 안됐던 것 같다 난이도가 어려운 거 같진 않은데 뭔가 정리가 잘 안되는 것 같았다 그래도 이렇게 다시 블로그로 정리해보니 내가 어느 정도 했는지 알 수 있어서 다행이었다 20강 21강 부분은 나중에 한 번 더 다시 봐야할 것 같다

 

18강 Entity, Relationship, Attribute.pptx
0.07MB
19강 E-R Diagram, Weak Entity Set.pptx
0.37MB
20강 Reduction to Relational Schemas.pptx
0.08MB
21강 Extended E-R Model.pptx
0.37MB

'CS > 데이터베이스' 카테고리의 다른 글

Ch8. Indexing  (0) 2020.02.02
Ch7. Normalization  (0) 2020.02.02
Ch5. Advanced SQL  (0) 2020.01.23
Ch4. Intermediate SQL  (0) 2020.01.22
Ch3. SQL  (0) 2020.01.19