최신판 |
당신의 편집 |
5번째 줄: |
5번째 줄: |
| * 구조를 나타내는 릴레이션 스키마와 실제 값들인 릴레이션 인스턴스로 구성 | | * 구조를 나타내는 릴레이션 스키마와 실제 값들인 릴레이션 인스턴스로 구성 |
|
| |
|
| == 릴레이션 표현 == | | == 데이터 표현 == |
| * 릴레이션의 데이터를 표(Table)형태로 표현 | | * 데이터를 표(Table)형태로 표현 |
| * '''튜플(Tuple)''' | | * '''튜플(Tuple)''' |
| ** 릴레이션을 구성하는 각 행을 의미 | | ** 릴레이션을 구성하는 각 행을 의미 |
| ** 속성 값의 모임으로 구성 | | ** 속성 값의 모임으로 구성 |
| ** 파일 구조에서 레코드 | | ** 파일 구조에서 레코드 |
| ** '''튜플의 수 = 카디날리티(Cardinality)''' | | ** 튜플의 수 = 카디날리티(Cardinality) |
| * '''속성(Attribute)''' | | * '''속성(Attribute)''' |
| ** 릴레이션을 구성하는 각 열 | | ** 릴레이션을 구성하는 각 열 |
| ** 데이터베이스를 구성하는 가장 작은 논리적 단위 | | ** 데이터베이스를 구성하는 가장 작은 논리적 단위 |
| ** 파일 구조의 데이터 필드 | | ** 파일 구조의 데이터 필드 |
| ** '''속성의 수 = 디그리(Degree)''' | | ** 속성의 수 = 디그리(Degree) |
| * '''도메인(Domain)''' | | * '''도메인(Domain)''' |
| ** 속성이 취할 수 있는 원자값들의 집합 | | ** 속성이 취할 수 있는 원자값들의 집합 |
23번째 줄: |
23번째 줄: |
| ** 속성들에 값이 부여되어 튜플을 이룬 형태 | | ** 속성들에 값이 부여되어 튜플을 이룬 형태 |
|
| |
|
| == 릴레이션의 특징 == | | == 데이터 키 == |
| * 모든 튜플은 서로 다른 값을 가진다.
| |
| ** 동일한 값이 저장될 수 있으나 별개의 값으로 해석
| |
| * 하나의 릴레이션에서 튜플의 순서는 무의미하다.
| |
| ** 실무적으로 삽입된 순서이지만, 이는 보장되지 않음
| |
| * 각 속성은 릴레이션 내에서 유일한 이름을 가진다.
| |
| * 각 속성은 순서를 가질 수 있지만 순서는 중요한 의미를 갖지 않는다.
| |
| ** 관리적 용도로 순서를 정해놓을 수 있지만 데이터의 논리적 성격과 무관
| |
| * 모든 속성 값은 원자 값(atomic value)을 가진다.
| |
| | |
| == [[데이터베이스 키]] ==
| |
| * '''슈퍼 키(Super Key)''' | | * '''슈퍼 키(Super Key)''' |
| ** 어떤 릴레이션의 어떠한 튜플들도 같은 값을 가지지 않는 속성, 또는 속성들의 조합
| | Attribute의 집합으로 구성된 Key / 유일성 O / 최소성 X(하나 빼도 유일성이 유지된다는 말) |
| ** 유일성 O / 최소성 X
| |
| * '''후보 키(Candidate Key)''' | | * '''후보 키(Candidate Key)''' |
| ** Tuple을 유일하게 식별하기 위해 사용되는 속성들의 부분집합
| | Tuple을 유일하게 식별하기 위해 사용되는 Attribute의 부분집합 / 유일성 O / 최소성 O |
| ** 유일성 O / 최소성 O
| |
| * '''기본 키(Primary Key)''' | | * '''기본 키(Primary Key)''' |
| ** 후보키 중 선정된 Key
| | Candidate Key 中, 선정된 Key / 중복된 값 X / Not Null / 유일성 O / 최소성 O |
| ** 중복된 값 X / Not Null / 유일성 O / 최소성 O
| |
| * '''대체 키(Alternate Key)''' | | * '''대체 키(Alternate Key)''' |
| ** 후보 키 중 선정된 기본 키를 뺀 나머지 키들
| | Candidate Key 中, Primary Key를 뺀 나머지 Key들 / 유일성 O / 최소성 O |
| ** 유일성 O / 최소성 O
| |
| * '''외부 키(Foreign Key)''' | | * '''외부 키(Foreign Key)''' |
| ** 다른 릴레이션의 Primary Key를 참조하는 속성
| | 다른 Relation의 Primary Key를 참조하는 Attribute(들) / 중복된 값 X / Not Null / 유일성 O / 최소성 O |
| ** 중복된 값 X / Not Null / 유일성 O / 최소성 O
| |
| | |
| == [[데이터베이스 무결성|무결성 제약 조건]] ==
| |
| ;Integrity Constraint
| |
| * '''도메인 제약조건(Domain constraints)'''
| |
| ** 각 속성은 반드시 각 속성의 도메인에 속하는 원자값(atom value)이어야 한다.
| |
| ** 각 칼럼은 그 칼럼의 데이터 타입, 범위에 만족하는 값이어야 한다.
| |
| * '''NULL 제약조건(Constraints on NULLS)'''
| |
| ** 각 칼럼은 일반적으론 NULL값을 가질 수 있다.
| |
| ** NOT NULL로 설정되어 있다면 NULL값을 가질 수 없다.
| |
| * '''키 제약조건(Key constraints)'''
| |
| ** 기본 키(Primary key)나 unique 칼럼은 유일성을 가지고 있어야 한다.
| |
| * '''개체 무결성 제약조건(Entity integrity constraints)'''
| |
| ** 기본 키(Primary key)는 NULL일 수 없다.
| |
| ** unique칼럼은 중복되지 않거나, NULL이거나 둘 중 하나이다.
| |
| * '''참조 무결성 제약조건(Referential integrity constraints)'''
| |
| ** 참조하는 릴레이션의 튜플들의 외부 키(Foreign key) 속성값은 참조되는 릴레이션 튜플의 기본 키(Primary key) 속성값과 일치하거나 NULL 값을 가져야 한다.
| |
| | |
| == [[데이터베이스 정규화]] ==
| |
| *비정규형 : 아래 모든 경우를 만족하지 않는 경우
| |
| *1NF : 모든 도메인이 원자값. 한 에트리뷰트에는 하나의 값만 들어가야 한다.
| |
| *2NF : 부분적 함수 종속을 제거해야 한다. 즉, 완전 함수적 종속 관계를 만족한다.
| |
| *3NF : 이행적 종속 관계를 제거 해야 한다.
| |
| *BCNF : 결정자가 모두 후보키인 경우. 어떤 속성도 키가 아닌 속성에 대해서는 완전 종속할 수 없다.
| |
| *4NF : 다치 종속성이 제거 되어야 한다.
| |
| *5NF : 조인 종속성이 만족 되어야 한다.
| |