데이터베이스 개론2판(김연희)를 읽고 복습목적으로 내용을 정리한 글입니다.
논리형 데이터 모델 중 가장 많이 사용되는 모델이 관계 데이터 모델이다.
관계 데이터 모델에 따라 제작된 데이터베이스를 관계 데이터베이스(relational database)라고 한다.
관계 데이터 모델에서 하나의 개체에 관한 데이터를 릴레이션(relation) 하나에 담아 데이터베이스에 저장한다.
즉, 릴레이션을 하나의 개체로 파악한다.
릴레이션은 릴레이션 스키마(relation schema)와 릴레이션 인스턴스(relation instance)로 구성된다.
릴레이션이름(속성이름1, 속성이름2, ..., 속성이름n)
릴레이션은 만족해야하는 4가지 특성이 있다.
하나의 투플에는 동일한 투플이 존재할 수 없다.
관계 투플에서는 하나 또는 여러개의 속성을 미리 선정해두고, 이 값을 투플마다 다르게 하여 유일성을 보장한다. 이러한 값을 키(key)라고 부른다.
모든 속성 값은 더는 분해할 수 없는 하나의 값, 즉 원자 값만 가질 수 있다.
관계 데이터 모델은 다중속성이라는 복잡한 개념을 배제하고 릴레이션을 단순한 구조로 정의한다.
투플의 유일성을 보장하는 속성, 또는 속성들의 집합을 키(key)라고 한다.
관계 데이터 모델에서는 키를 5가지로 구분한다.
슈퍼키는 유일성의 특성을 만족하는 속성 또는 속성들의 집합이다.
유일성과 더불어 최소성을 만족하는 속성 또는 속성들의 집합이다.
최소성이란 유일성을 만족시킬 수 있는 최소한의 속성들로만 구성되있음을 의미한다.
유일성과 최소성은 투플이 삽입되거나 투플의 속성이 변경되어도 유지되어야 한다.
후보키 선정시 릴레이션 인스턴스만 보고 판단하면 안된다. 현실 세계를 파악하고 속성의 본질을 생각하여 선정한다.
여러 후보키 중 기본적으로 사용하는 키이다.
후보키가 여러가지인 경우 데이터베이스 사용환경을 고려하여 적합한 키를 선택한다.
다른 릴레이션의 기본키로 구성된 속성, 속성 집합이다.
다른 릴레이션과의 관계를 표현하기 위한 목적으로 사용된다.
하나의 릴레이션에는 외래키가 여러개 존재할 수 있고, 외래키를 기본키로 사용할 수도 있다.
외래키는 기본키가 아니기 때문에 중복되거나 NULL
값을 가질 수 있다.
관계 데이터 모델은 데이터의 무결성(integrity constraint)을 보장한다.
무결성이란 데이터에 결함이 없는 상태, 즉 데이터가 정확하고 유효하게 유지된 상태를 의미한다.
이를 위한 무결성 제약조건이 존재하고, 이를 만족해야한다.
무결성 제약조건에는 개체 무결성 제약조건과 참조 무결성 제약조건이 있다.
개체 무결성 제약 조건을 만족하기 위해 데이터베이스 관리 시스템은 투플의 기본키에 대한 생성 및 변경 사항 발생시 조건을 만족하는지 확인하는 작업을 수행한다.
외래키의 목적은 릴레이션간의 참조 관계를 정의하기 위한 목적이다.
외래키로 다른 릴레이션의 투플을 참조할 수 없다면, 외래키 본래의 의미가 없어진다.
외래키가 NULL값을 가진다고 참조 무결성 제약조건을 위반하는 것은 아니다.