관계형 데이터베이스 편집하기

IT위키

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
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 : 조인 종속성이 만족 되어야 한다.
IT위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 IT위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소 편집 도움말 (새 창에서 열림)