데이터 추상화의 수단을 제공하는 것.
구조 - Elements, Data types, relationship, constraints
실행 - Query, Insert, Delete, Update, User-Defined
제약 - Not-Null, Key, Unique ...
스키마는 Relations(테이블들)로 이루어져있습니다.
Relation(테이블)은 Tuple(instance)들로 이루어져 있습니다.
Record = Tuple = Instance 들 Fields(Attributes)(속성값)들로 이루어져 있습니다.
Database Schema vs Database State
스키마는 시작 구조를 뜻하고, State는 이를 만족하는 특정 상태의 Data를 뜻합니다.
Three-Schema Architecture의 구성
1) External Schema 2) Conceptual Schema 3) Internal Schema
1) DDL - 구조정의 명령어
2) DML - DB 조정 명령어
데이터베이스의 디자인 과정은 2 과정을 거쳐서 이루어집니다.
첫번째인 Application 디자인 단계에선 프로그램과 DB에 접근하는 사용자가 상호작용하는 GUI를 담당합니다.
두번째인 Database 디자인 단계에서는 Conceptual Schema 구성이 이루어집니다.
E-R Model은 후자를 다룹니다.
E-R 은 Entity-Relationship을 뜻하고 각각의 Entities, Relationshops, Attributes로 표현됩니다.
예를 들어보겠습니다.
영화관 회원 관리 어플이 있다면 Entity는 '사용자정보', '영화정보' 등등을 뜻합니다.
Attribute는 '사용자정보'의 경우 이름, 주소, 나이, 휴대폰 전화 등이 있습니다.
a) 저장 속성 - 단순히 저장되는 속성
b) 도출 속성 - 다른 Attribute로 부터 도출할 수 있는 속성, Ex) 생년월일로 부터 나이를 도출
Entity Type과 Entity Sets에 대하여
전자는 내부 Schema같은 느낌으로 숨겨져있는 정보이고 후자는 해당 Entity에 속해있는 값들을 보여준다.
해당 속성값만 알면 Entity를 밝혀낼 수 있는 유일한 고유값.
키속성은 여러개를 가질 수 있습니다.
또한 속성은 특정한 형식을 만족시켜야할 수도 있으며 (Valueset) 범위가 정해져있을 수 있습니다.
Ex) Date - MM-DD-YYYY, Age - 16~70
ex) EMPLOYEE 홍길동 Works On SpacX Project
Binary는 두개의 서로 다른 Entity가 참여하는 것
Ternary는 세개로 이루어진 것
Type은 Schema와 같은 것, Set은 Instance 같은 것.
역할 이름은 Entity에 부여됩니다.
모든 Entity Type이 분명하게 정의된 경우엔 Entity Type name = Role name이지만
Entity Type이 하나 이상의 Relationshipe Type에 다른 역할들로 참여하는 경우에는 role name의 명시가 필요합니다.
자기 자신에 대한 관계를 나타내는 관계입니다.
SUPERVISION의 경우 EMPLOYEE에 속하지만 Role Name이 다릅니다.
위 관계는 재귀적인 속성을 띄고 있습니다.
Entity가 최대 몇 개의 관계를 맺을 수 있는지를 나타내는 값입니다.
Ex) 1:1 1:N N:1 M:N
위 그림은 MANAGES 관계에 대해서 두 Entity가 1:1의 관계를 가지고 있습니다.
위 사진에선 N : M의 관계를 가지고 있습니다.
한 Employee가 여러개의 Project에 대해서 일할 수 있으며
한 Project는 여러명의 Employee를 포함시킬 수 있습니다.
1 : N의 관계도입니다.
어떤 relation type에 대해 어떤 entity가 존재하기 위해서는, 또 다른 entity와 (전체적 또는 부분적으로) 관계되어야 합니다. 즉, 아무런 Entity가 참여하지 않는 관계는 관계라고 할 수 없다는 말이겠죠?
entity들의 instance가 모두 참여하며
ER diagram에서 double line으로 표현됩니다.
entity들의 instance 중 일부가 참여하며
ER diagram에서 single line으로 표현됩니다.
또는 Child, Subordinate 라고 불리기도 한다.
이는 자기 자체로 존재 불가하고 다른 Entity Type, Parent의 특정 Entity와 관계됨으로써 식별이 가능합니다.
Weak Entity는 같은 부모로 부터 Unique하게 구분될 수 있게 Partial Key를 가집니다.
위와 같은 ER diagram 모형을 가집니다.
잘 읽었습니다. 좋은 정보 감사드립니다.