프로그래밍 농장

DBMS [ 관계 데이터 모델에서의 개념 (키 / 스키마 / 릴레이션 / 속성. .) ] 본문

DBMS

DBMS [ 관계 데이터 모델에서의 개념 (키 / 스키마 / 릴레이션 / 속성. .) ]

Tennessee201 2021. 3. 6.
728x90

데이터 추상화(Data Abstraction) : 현실 세계에서 얻을 수 있는 데이터에서 세부 사항은 숨기고, 핵심 사항만 강조 

 

데이터 모델(Data Model) : 데이터베이스 설계를 위한 계획  [ 데이터구조 / 연산 / 제약조건으로 구성됨 ]

데이터 구조 : 데이터가 어떤 모습으로 저장되는지 나타내는 논리적 구조 

연산 : 데이터 구조에 맞게 값을 처리하는 과정 [ 삽입 / 삭제 / 수정 / 검색 ]

제약 조건 : 데이터가 유효하도록 규칙을 부여 

 

데이터모델은 개념적 데이터 모델(Conceptual Data Model)논리적 데이터 모델(Logical Data Model)로 나뉜다. 

 


 

개체 - 관계 모델 ( Entity-Relationship Model, E-R Model ) 

개체(Entity)와 개체간의 관계를 이용해 현실세계를 개념적 구조로 표현한것.

개체(Entity), 관계(Relationship), 속성(Attribute)으로 구성

 

개체-관계 다이어그램(E-R Diagram)은, 위 모델을 그림을 통해 직관적으로 표현한 것이다. 

 

 

개체(Entity) : 현실 세계에서 다른 것들과 구별되어 존재하는 실체 / 각 개체만의 특성을가지고있음 ( 이름 / 나이 등 . . )

개체 인스턴스(Entity Instance) : 개체 타입에 따라 실제 값 또는 현재 값을 가지는 개체

 


속성(Attribute) : 개체나 관계의 특성을 기술 

 

단일 값 속성(single-Valued Attribute) : 값을 하나만 가질 수 있는 속성   ex) 아이디 / 이름 . .

단순 속성(Simple Attribute) : 의미를 더는 분해할 수 없는 속성   ex) 제품 가격 . .

복합 속성(Compsite Attribute) : 의미를 분해할 수 있는 속성    ex) 생년월일 : 년/월/일로 세분화 가능

유도 속성(Derived Attribute) : 하나의 속성이 저장된(Stored Attribute) : 다른 속성값에서 유도되어 결정 (값이 저장 x)

널 속성(Null Attribute) : 널 값이 허용되는 속성 ( 공백이나 0 값이아닌, 적용할값이없는, 존재하지않는 속성 )

 

키 속성(Key Attribute) : 각 개체의 인스턴스를 찾아내는데 사용되는 속성.  모든 개체 인스턴스는 고유한 키 값을 가짐. ex) 고객  -> 고객아이디 - 고객명 


 

관계(Relationship) : 개체와 개체 사이의 의미 있는 대응 관계 ( Mapping ) 

유형(Type) : 일대일(1:1)관계 / 일대다(1:n)관계 / 다대다(n:n)관계 

매핑 카디널리티(Mapping Cardinality) : 관계를 맺는 두 개체 집합에서 각 개체 인스턴스가 연관성을 맺고 있는 상대 개체 집합의 인스턴스 개수 

 

참여 : 개체 인스턴스가 관계 인스턴스에 연관되는 것 ( 필수적 참여 / 선택적 참여 ) 

위와 같이 구매라는 관계(R)을 위해서는 필수적인 개체(E)가 필요하다. 

 

종속성(Dependence) : 개체가 독자적으로 존재할 수 없으며 다른 개체의 존재 여부에 의존적. 존재종속(Existence Dependence)

약한 개체(Weak Entity) : 다른 개체가 존재해야 존재할 수 있는 개체 

강한 개체(Strong Entity) : 다른 개체의 존재 여부를 결정하는 개체 

 

특징 

  • 강한 개체와 약한 개체는 일반적으로 일대다(1:n)의 관계를 가진다. 
  • 약한 개체는 강한 개체와의 관계에 필수적으로 참여한다. 
  • 약한 개체는 강한 개체의 키를 포함하여 키를 구성한다. 

 


개체 - 관계 다이어그램( E-R Diagram) 

E-R Diagram 

 

새발 표기법 ( 개체 - 관계 다이어그램 ) 

새발(Crow-feet) 표기법 : 관계의 의미나 제약조건 등은 개체 타입들을 연결하는 실선 위에 몇 가지 기호를 사용하여 표현하는 표기법 

 

 

키(Key) : 릴레이션에서 투플들을 유일하게 구별하는 속성 또는 속성들의 집합 

유일성(Uniqueness) : 동일한 키 값을 가지는 투플은 존재하지 않음 ex) 학생정보 - 학번, 주민번호 . .

최소성(Minimality) : 유일성을 지키는데 필요한 최소한의 속성들로만 키를 구성함 . 키를 이루는 속성들 중 하나라도 빠지면 유일성을 보장할 수 없음.  

 

키(Key)의 종류 

슈퍼키(Super Key) : 유일성을 만족하는 속성(또는 집합)

후보키(Candidate Key) : 유일성과 최소성을 만족하는 속성(또는 집합) 

기본키(Primary Key) : 후보키 중에서 기본적으로 사용하기 위해 선택한 키 

대체키(Alternate Key) : 키본키로 선택되지 못한 후보키 

외래키(Foreign Key) : 다른 릴레이션의 기본키를 참조하는 속성(또는 집합) 

키(Key)의 세분화 

 

기본키의 선택조건 

   널(Null)값 속성이 없을 것  ex) 고객아이디 > 고객 주소

   변경이 잦은 속성은 피할 것 ex) 고객아이디 >고객주소, 이름. .

   단순한 후보키를 선택  ex) 고객아이디 > 이름, 이메일 

 

무결성(Integrity) : 데이터가 정확하고 유효한 상태(Valid State)

-> 데이터베이스란 갱신이 매우 잦은 데이터들을 다루기떄문에 , 제약조건으로 애초에 문제가없도록( Null값. . 등 ) 강제함.

 

 참조 무결성(Referential Integrity Constraint) : 외래키는 참조할 수 없는 값을 가질 수 없는 규칙 ex) 애초에 없는 값을 참조 할 수없음. 

728x90