익명 사용자
로그인하지 않음
토론
기여
계정 만들기
로그인
IT 위키
검색
관계형 데이터베이스
편집하기
IT 위키
이름공간
문서
토론
더 보기
더 보기
문서 행위
읽기
편집
원본 편집
역사
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
[[분류:데이터베이스]][[분류:정보처리기사]] ;Relational Database ;데이터 관계를 중심으로 구현한 데이터베이스 * 구조를 나타내는 릴레이션 스키마와 실제 값들인 릴레이션 인스턴스로 구성 == 이론적 기반 == 관계형 모델은 집합론에 기반한다. 수학에서 집합은 고유한 객체들의 모음인데, 이와 비슷하게 데이터베이스의 관계(또는 표)는 튜플(행)의 집합으로 볼 수 있으며, 각 튜플은 속성(열)과 값으로 구성된다. 관계형 데이터 모델은 '''E.F. 코드 박사'''(Dr. E.F. Codd)가 1970년에 발표한 논문 “A Relational Model for Large Shared Data Banks”에서 처음 제안되었다. 이 논문은 데이터베이스 분야의 혁신을 가져왔으며, 코드 박사는 이 공로로 '''[[튜링 상|ACM 튜링 상]]'''을 수상했다. == 관계형 데이터 표현 == 이론적 용어와 실무적 용어 2가지가 사용된다. 먼저 이론적 용어를 다루고, 이후 각각에 해당하는 실용적 용어를 다룬다. === 이론적 용어 (수학적 모델에서 정의된 용어) === * 릴레이션의 데이터를 표(Table)형태로 표현 * '''튜플(Tuple)''' ** 릴레이션을 구성하는 각 행(row)을 의미 ** 속성 값의 모임으로 구성 ** 파일 구조에서 레코드 ** '''튜플의 수 = 카디날리티(Cardinality)''' * '''속성(Attribute)''' ** 릴레이션을 구성하는 각 열 ** 데이터베이스를 구성하는 가장 작은 논리적 단위 ** 파일 구조의 데이터 필드 ** '''속성의 수 = 디그리(Degree)''' * '''도메인(Domain)''' ** 속성이 취할 수 있는 원자값들의 집합 ** ex) 속성이 '성별'일 경우 도메인은 '남자' 또는 '여자' * '''인스턴스(Instance)''' ** 속성들에 값이 부여되어 튜플을 이룬 형태 ** 릴레이션에 존재하는 데이터를 지칭 * '''릴레이션 상태(State of the Relation)''' ** 특정 시점에서 릴레이션의 상태 === 실용적 용어 (SQL 표준 및 현대 RDBMS에서 사용되는 용어) === {| class="wikitable" !이론적 용어 !실용적 용어 |- |Relation |테이블(Table) |- |Attribute |칼럼 헤더(Column Header) |- |Domain |칼럼이 가질 수 있는 값들(All possible Column Values) |- |Tuple |행(Row) |- |Schema of a Relation |테이블 정의(Table Definition) |- |State of the Relation |데이터가 삽입된 테이블(Populated Table) |} == 릴레이션의 특징 == * 모든 튜플은 서로 다른 값을 가진다. ** 동일한 값이 저장될 수 있으나 별개의 값으로 해석 * 하나의 릴레이션에서 튜플의 순서는 무의미하다. ** 실무적으로 삽입된 순서이지만, 이는 보장되지 않음 * 각 속성은 릴레이션 내에서 유일한 이름을 가진다. * 각 속성은 순서를 가질 수 있지만 순서는 중요한 의미를 갖지 않는다. ** 관리적 용도로 순서를 정해놓을 수 있지만 데이터의 논리적 성격과 무관 * 모든 속성 값은 원자 값(atomic value)을 가진다. == [[데이터베이스 키]] == * '''슈퍼 키(Super Key)''' ** 어떤 릴레이션의 어떠한 튜플들도 같은 값을 가지지 않는 속성, 또는 속성들의 조합 ** 유일성 O / 최소성 X * '''후보 키(Candidate Key)''' ** Tuple을 유일하게 식별하기 위해 사용되는 속성들의 부분집합 ** 유일성 O / 최소성 O * '''기본 키(Primary Key)''' ** 후보키 중 선정된 Key ** 중복된 값 X / Not Null / 유일성 O / 최소성 O * '''대체 키(Alternate Key)''' ** 후보 키 중 선정된 기본 키를 뺀 나머지 키들 ** 유일성 O / 최소성 O * '''외부 키(Foreign Key)''' ** 다른 릴레이션의 Primary Key를 참조하는 속성 ** 중복된 값 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 위키:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기
둘러보기
대문
최근 바뀜
광고
위키 도구
위키 도구
특수 문서 목록
문서 도구
문서 도구
사용자 문서 도구
더 보기
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
문서 기록