*DM := <S, O, C>
*관계 데이터 모델을 SW로 구현한 것이 RDBMS
◆관계 데이터 모델과 제약조건
●관계 데이터 모델의 장점
▷데이터 독립성을 늘린다.
▷단순한 구조를 갖도록 한다.
●관계 데이터 모델이 큰 성공을 이룬 까닭
▷집합 위주로 데이터를 처리하고, 고급 언어인 SQL을 제공하고, 숙련되지 않은 사용자도 쉽게 이해할 수 있고, 트랜잭션 관리 기능을 제공 한다는 것이다.
◆관계 데이터 모델의 개념
▷관계 데이터 모델은 동일한 구조(릴레이션)의 관점에서 모든 데이터를 논리적으로 구성하며 선언적인 질의어를 통한 데이터 접근을 제공한다. (비절차적 언어)
●관계 데이터 모델의 목적
▷높은 데이터 독립성을 제공한다.
▷사용자는 원하는 데이터만 명시하고, 어떻게 이 데이터를 찾을 것인가는 명시 할 필요가 없다.
◆기본적인 용어
●관계 데이터 모델의 큰 장점은 구조가 단순하다는 것이다.
●한 릴레이션은 데이터베이스에 표현되는 한 엔티티에 관한 정보를 저장하는 데 사용된다.
●릴레이션의 각 행을 레코드라고 부른다. 공식적으로 투플(tuple)이라고 부른다.
▷한 투플은 그 릴레이션이 나타내는 엔티티의 한 인스턴스를 의미한다.
▷각 행은 한명의 사원을 나타낸다.
*인스턴스(개인 값)+스키마(항목)는 릴레이션이다.
●애트리뷰트(attribute)는 릴레이션에서 이름을 가진 하나의 열이다.
●도메인(domain)
▷한 애트리뷰트에 나타날 수 있는 값들의 집합이다.
▷각 애트리뷰트의 도메인의 값은 원자값이다. (나누어지지 않는 값)
▷한 애트리뷰트에 나타나는 값들은 하나의 도메인으로부터 유도 된다.
●차수(dgree)
▷한 릴레이션에 들어 있는 애트리뷰트들의 수
●카디날리티(cardinality)
▷투플의 수
*카디날리티는 0개 여도 되지만, 차수는 0일 수 없다.
*차수는 정적이며, 카디날리티는 동적이다.
공식적인 용어 | 자주 사용되는 용어 | 화일 시스템의 용어 |
릴레이션 | 테이블 | 화일 |
투플 | 행/레코드 | 레코드 |
애트리뷰트 | 열 | 필드 |
<표 2.1 용어들의 대응 관계>
●널(NULL)값
▷‘알려지지 않음’ 또는 ‘적용할 수 없음’을 나타내기 위해 널값을 사용한다.
◆스키마와 인스턴스
●릴레이션 스키마(relation schema) (내포 :intension)
▷릴레이션의 이름과 릴레이션의 애트리뷰트들의 집합을 릴레이션 스키마라고 한다.
▶릴레이션 스키마의 표기법
▷릴레이션 이름(애트리뷰트1, 애트리뷰트2, ... , 애트리뷰트N)
▷기본 키 애트리뷰트에는 밑줄 표시를 한다.
●릴레이션 인스턴스(relation instance) (외포 :extension)
▷릴레이션에 어느 시점에 들어있는 투플의 집합이다.
▷이런 변화는 데이터 조작어를 통해서 이루어 진다.
▶이에 반해 릴레이션 스키마는 일반적으로 매우 안정적이다.
●무결성 제약조건(integrity constraint)
▷적절한 의미적 조건을 사용하여 이런 인스턴스들을 제한할 필요가 있다.
◆릴레이션의 특징
●각 릴레이션은 오직 하나의 레코드 타입만 포함한다. (부서, 직원)
●한 애트리뷰트 내의 값들은 모두 같은 유형이다. (int, char)
◆릴레이션의 4대 특성
●애트리뷰트들의 순서는 중요하지 않다. (애트리뷰트의 무순서)
●한 투플의 각 애트리뷰트는 원잣값을 갖는다. (애트리뷰트의 원잣값)
●릴레이션이 투플들의 집합이기 때문에 투플들의 순서는 중요하지 않다. (튜플의 무순서)
●릴레이션이 투플들의 집합이기 때문에 동일한 투플이 두 개 이상 존재하지 않는다. (투플의 유일성)
▷상용 관계 DBMS에서는 사용자가 명시하지 않으면 무시된다.
●각 애트리뷰트의 이름은 한 릴레이션 내에서만 고유하다.
◆릴레이션의 키
▷각 투플을 고유하게 식별할 수 있는 하나 이상의 애트리뷰트들의 모임이다.
●특정 투플을 검색하거나 (기본키)
●다른 투플들과 연관시킬 수 있도록 하기 위해서 (외래키)
▷적은 수의 애트리뷰트로 이루어진 키에 관심을 갖는다.
●수퍼 키(superkey)
▷한 릴레이션 내의 특정 투플을 고유하게 식별하는 애트리뷰트 또는 애트리뷰트들의 집합이다.
▷수퍼키의 문제점은 투플들을 고유하게 식별하는 데 꼭 필요하지 않은 애트리뷰트들을 포함할 수 있다는 것이다.
●후보 키(candidate key)
▷각 투플을 고유하게 식별하는 최소한의 애트리뷰트들의 모임이다.
▶후보 키도 두 개 이상의 애트리뷰트로 이루어질 수 있으며, 복합 키(conposite key)라고 한다.
●기본 키(PK : primary key)
▷후보 키 중 하나를 기본 키로 선정한다. 사용 빈도가 높은 후보키 가 좋다.
▷기본 키를 찾을 수 없는 경우 혹은 애트리뷰트가 3개를 넘어가는 기본 키일 경우 대리키
▶모든 투플을 고유하게 식별할 수 있어야 하므로 널값이나 중복된 값을 가질 수 없다.
▷애트리뷰트가 항상 고유한 값을 가질 것인가
▷애트리뷰트가 확실하게 널값을 갖지 않을 것인가
▷애트리뷰트의 값이 변경될 가능성이 높은 애트리뷰트는 기본 키로 선정하지 말 것
▷가능하면 작은 정수 값이나 짧은 문자열을 갖는 애트리뷰트
▷가능하면 복합 기본 키를 피할 것
●대체 키(alternate key)
▷기본 키로 선정되지 않은 후보 키를 말한다.
●외래 키(FK : foreign key)
▷어떤 릴레이션의 기본 키를 참조하는 애트리뷰트이다.
▷관계 데이터베이스에서 릴레이션들 간의 관계를 나타내기 위해서 사용된다.
▶다른 릴레이션의 기본 키를 탐조하는 외래 키
▶자체 릴레이션의 기본 키를 탐조하는 외래 키
▶기본 키의 구성요소가 되는 외래 키
*왜래 키는 기본 키의 역할을 겸하지 않을 땐 NULL값을 가질 수 있다.
*DM := <S, O, C>
*관계 데이터 모델을 SW로 구현한 것이 RDBMS
◆관계 데이터 모델과 제약조건
●관계 데이터 모델의 장점
▷데이터 독립성을 늘린다.
▷단순한 구조를 갖도록 한다.
●관계 데이터 모델이 큰 성공을 이룬 까닭
▷집합 위주로 데이터를 처리하고, 고급 언어인 SQL을 제공하고, 숙련되지 않은 사용자도 쉽게 이해할 수 있고, 트랜잭션 관리 기능을 제공 한다는 것이다.
◆관계 데이터 모델의 개념
▷관계 데이터 모델은 동일한 구조(릴레이션)의 관점에서 모든 데이터를 논리적으로 구성하며 선언적인 질의어를 통한 데이터 접근을 제공한다. (비절차적 언어)
●관계 데이터 모델의 목적
▷높은 데이터 독립성을 제공한다.
▷사용자는 원하는 데이터만 명시하고, 어떻게 이 데이터를 찾을 것인가는 명시 할 필요가 없다.
◆기본적인 용어
●관계 데이터 모델의 큰 장점은 구조가 단순하다는 것이다.
●한 릴레이션은 데이터베이스에 표현되는 한 엔티티에 관한 정보를 저장하는 데 사용된다.
●릴레이션의 각 행을 레코드라고 부른다. 공식적으로 투플(tuple)이라고 부른다.
▷한 투플은 그 릴레이션이 나타내는 엔티티의 한 인스턴스를 의미한다.
▷각 행은 한명의 사원을 나타낸다.
*인스턴스(개인 값)+스키마(항목)는 릴레이션이다.
●애트리뷰트(attribute)는 릴레이션에서 이름을 가진 하나의 열이다.
●도메인(domain)
▷한 애트리뷰트에 나타날 수 있는 값들의 집합이다.
▷각 애트리뷰트의 도메인의 값은 원자값이다. (나누어지지 않는 값)
▷한 애트리뷰트에 나타나는 값들은 하나의 도메인으로부터 유도 된다.
●차수(dgree)
▷한 릴레이션에 들어 있는 애트리뷰트들의 수
●카디날리티(cardinality)
▷투플의 수
*카디날리티는 0개 여도 되지만, 차수는 0일 수 없다.
*차수는 정적이며, 카디날리티는 동적이다.
공식적인 용어 | 자주 사용되는 용어 | 화일 시스템의 용어 |
릴레이션 | 테이블 | 화일 |
투플 | 행/레코드 | 레코드 |
애트리뷰트 | 열 | 필드 |
<표 2.1 용어들의 대응 관계>
●널(NULL)값
▷‘알려지지 않음’ 또는 ‘적용할 수 없음’을 나타내기 위해 널값을 사용한다.
◆스키마와 인스턴스
●릴레이션 스키마(relation schema) (내포 :intension)
▷릴레이션의 이름과 릴레이션의 애트리뷰트들의 집합을 릴레이션 스키마라고 한다.
▶릴레이션 스키마의 표기법
▷릴레이션 이름(애트리뷰트1, 애트리뷰트2, ... , 애트리뷰트N)
▷기본 키 애트리뷰트에는 밑줄 표시를 한다.
●릴레이션 인스턴스(relation instance) (외포 :extension)
▷릴레이션에 어느 시점에 들어있는 투플의 집합이다.
▷이런 변화는 데이터 조작어를 통해서 이루어 진다.
▶이에 반해 릴레이션 스키마는 일반적으로 매우 안정적이다.
●무결성 제약조건(integrity constraint)
▷적절한 의미적 조건을 사용하여 이런 인스턴스들을 제한할 필요가 있다.
◆릴레이션의 특징
●각 릴레이션은 오직 하나의 레코드 타입만 포함한다. (부서, 직원)
●한 애트리뷰트 내의 값들은 모두 같은 유형이다. (int, char)
◆릴레이션의 4대 특성
●애트리뷰트들의 순서는 중요하지 않다. (애트리뷰트의 무순서)
●한 투플의 각 애트리뷰트는 원잣값을 갖는다. (애트리뷰트의 원잣값)
●릴레이션이 투플들의 집합이기 때문에 투플들의 순서는 중요하지 않다. (튜플의 무순서)
●릴레이션이 투플들의 집합이기 때문에 동일한 투플이 두 개 이상 존재하지 않는다. (투플의 유일성)
▷상용 관계 DBMS에서는 사용자가 명시하지 않으면 무시된다.
●각 애트리뷰트의 이름은 한 릴레이션 내에서만 고유하다.
◆릴레이션의 키
▷각 투플을 고유하게 식별할 수 있는 하나 이상의 애트리뷰트들의 모임이다.
●특정 투플을 검색하거나 (기본키)
●다른 투플들과 연관시킬 수 있도록 하기 위해서 (외래키)
▷적은 수의 애트리뷰트로 이루어진 키에 관심을 갖는다.
●수퍼 키(superkey)
▷한 릴레이션 내의 특정 투플을 고유하게 식별하는 애트리뷰트 또는 애트리뷰트들의 집합이다.
▷수퍼키의 문제점은 투플들을 고유하게 식별하는 데 꼭 필요하지 않은 애트리뷰트들을 포함할 수 있다는 것이다.
●후보 키(candidate key)
▷각 투플을 고유하게 식별하는 최소한의 애트리뷰트들의 모임이다.
▶후보 키도 두 개 이상의 애트리뷰트로 이루어질 수 있으며, 복합 키(conposite key)라고 한다.
●기본 키(PK : primary key)
▷후보 키 중 하나를 기본 키로 선정한다. 사용 빈도가 높은 후보키 가 좋다.
▷기본 키를 찾을 수 없는 경우 혹은 애트리뷰트가 3개를 넘어가는 기본 키일 경우 대리키
▶모든 투플을 고유하게 식별할 수 있어야 하므로 널값이나 중복된 값을 가질 수 없다.
▷애트리뷰트가 항상 고유한 값을 가질 것인가
▷애트리뷰트가 확실하게 널값을 갖지 않을 것인가
▷애트리뷰트의 값이 변경될 가능성이 높은 애트리뷰트는 기본 키로 선정하지 말 것
▷가능하면 작은 정수 값이나 짧은 문자열을 갖는 애트리뷰트
▷가능하면 복합 기본 키를 피할 것
●대체 키(alternate key)
▷기본 키로 선정되지 않은 후보 키를 말한다.
●외래 키(FK : foreign key)
▷어떤 릴레이션의 기본 키를 참조하는 애트리뷰트이다.
▷관계 데이터베이스에서 릴레이션들 간의 관계를 나타내기 위해서 사용된다.
▶다른 릴레이션의 기본 키를 탐조하는 외래 키
▶자체 릴레이션의 기본 키를 탐조하는 외래 키
▶기본 키의 구성요소가 되는 외래 키
*왜래 키는 기본 키의 역할을 겸하지 않을 땐 NULL값을 가질 수 있다.
*관계 데이터 모델을 SW로 구현한 것이 RDBMS
◆관계 데이터 모델과 제약조건
●관계 데이터 모델의 장점
▷데이터 독립성을 늘린다.
▷단순한 구조를 갖도록 한다.
●관계 데이터 모델이 큰 성공을 이룬 까닭
▷집합 위주로 데이터를 처리하고, 고급 언어인 SQL을 제공하고, 숙련되지 않은 사용자도 쉽게 이해할 수 있고, 트랜잭션 관리 기능을 제공 한다는 것이다.
◆관계 데이터 모델의 개념
▷관계 데이터 모델은 동일한 구조(릴레이션)의 관점에서 모든 데이터를 논리적으로 구성하며 선언적인 질의어를 통한 데이터 접근을 제공한다. (비절차적 언어)
●관계 데이터 모델의 목적
▷높은 데이터 독립성을 제공한다.
▷사용자는 원하는 데이터만 명시하고, 어떻게 이 데이터를 찾을 것인가는 명시 할 필요가 없다.
◆기본적인 용어
●관계 데이터 모델의 큰 장점은 구조가 단순하다는 것이다.
●한 릴레이션은 데이터베이스에 표현되는 한 엔티티에 관한 정보를 저장하는 데 사용된다.
●릴레이션의 각 행을 레코드라고 부른다. 공식적으로 투플(tuple)이라고 부른다.
▷한 투플은 그 릴레이션이 나타내는 엔티티의 한 인스턴스를 의미한다.
▷각 행은 한명의 사원을 나타낸다.
*인스턴스(개인 값)+스키마(항목)는 릴레이션이다.
●애트리뷰트(attribute)는 릴레이션에서 이름을 가진 하나의 열이다.
●도메인(domain)
▷한 애트리뷰트에 나타날 수 있는 값들의 집합이다.
▷각 애트리뷰트의 도메인의 값은 원자값이다. (나누어지지 않는 값)
▷한 애트리뷰트에 나타나는 값들은 하나의 도메인으로부터 유도 된다.
●차수(dgree)
▷한 릴레이션에 들어 있는 애트리뷰트들의 수
●카디날리티(cardinality)
▷투플의 수
*카디날리티는 0개 여도 되지만, 차수는 0일 수 없다.
*차수는 정적이며, 카디날리티는 동적이다.
공식적인 용어 | 자주 사용되는 용어 | 화일 시스템의 용어 |
릴레이션 | 테이블 | 화일 |
투플 | 행/레코드 | 레코드 |
애트리뷰트 | 열 | 필드 |
<표 2.1 용어들의 대응 관계>
●널(NULL)값
▷‘알려지지 않음’ 또는 ‘적용할 수 없음’을 나타내기 위해 널값을 사용한다.
◆스키마와 인스턴스
●릴레이션 스키마(relation schema) (내포 :intension)
▷릴레이션의 이름과 릴레이션의 애트리뷰트들의 집합을 릴레이션 스키마라고 한다.
▶릴레이션 스키마의 표기법
▷릴레이션 이름(애트리뷰트1, 애트리뷰트2, ... , 애트리뷰트N)
▷기본 키 애트리뷰트에는 밑줄 표시를 한다.
●릴레이션 인스턴스(relation instance) (외포 :extension)
▷릴레이션에 어느 시점에 들어있는 투플의 집합이다.
▷이런 변화는 데이터 조작어를 통해서 이루어 진다.
▶이에 반해 릴레이션 스키마는 일반적으로 매우 안정적이다.
●무결성 제약조건(integrity constraint)
▷적절한 의미적 조건을 사용하여 이런 인스턴스들을 제한할 필요가 있다.
◆릴레이션의 특징
●각 릴레이션은 오직 하나의 레코드 타입만 포함한다. (부서, 직원)
●한 애트리뷰트 내의 값들은 모두 같은 유형이다. (int, char)
◆릴레이션의 4대 특성
●애트리뷰트들의 순서는 중요하지 않다. (애트리뷰트의 무순서)
●한 투플의 각 애트리뷰트는 원잣값을 갖는다. (애트리뷰트의 원잣값)
●릴레이션이 투플들의 집합이기 때문에 투플들의 순서는 중요하지 않다. (튜플의 무순서)
●릴레이션이 투플들의 집합이기 때문에 동일한 투플이 두 개 이상 존재하지 않는다. (투플의 유일성)
▷상용 관계 DBMS에서는 사용자가 명시하지 않으면 무시된다.
●각 애트리뷰트의 이름은 한 릴레이션 내에서만 고유하다.
◆릴레이션의 키
▷각 투플을 고유하게 식별할 수 있는 하나 이상의 애트리뷰트들의 모임이다.
●특정 투플을 검색하거나 (기본키)
●다른 투플들과 연관시킬 수 있도록 하기 위해서 (외래키)
▷적은 수의 애트리뷰트로 이루어진 키에 관심을 갖는다.
●수퍼 키(superkey)
▷한 릴레이션 내의 특정 투플을 고유하게 식별하는 애트리뷰트 또는 애트리뷰트들의 집합이다.
▷수퍼키의 문제점은 투플들을 고유하게 식별하는 데 꼭 필요하지 않은 애트리뷰트들을 포함할 수 있다는 것이다.
●후보 키(candidate key)
▷각 투플을 고유하게 식별하는 최소한의 애트리뷰트들의 모임이다.
▶후보 키도 두 개 이상의 애트리뷰트로 이루어질 수 있으며, 복합 키(conposite key)라고 한다.
●기본 키(PK : primary key)
▷후보 키 중 하나를 기본 키로 선정한다. 사용 빈도가 높은 후보키 가 좋다.
▷기본 키를 찾을 수 없는 경우 혹은 애트리뷰트가 3개를 넘어가는 기본 키일 경우 대리키
▶모든 투플을 고유하게 식별할 수 있어야 하므로 널값이나 중복된 값을 가질 수 없다.
▷애트리뷰트가 항상 고유한 값을 가질 것인가
▷애트리뷰트가 확실하게 널값을 갖지 않을 것인가
▷애트리뷰트의 값이 변경될 가능성이 높은 애트리뷰트는 기본 키로 선정하지 말 것
▷가능하면 작은 정수 값이나 짧은 문자열을 갖는 애트리뷰트
▷가능하면 복합 기본 키를 피할 것
●대체 키(alternate key)
▷기본 키로 선정되지 않은 후보 키를 말한다.
●외래 키(FK : foreign key)
▷어떤 릴레이션의 기본 키를 참조하는 애트리뷰트이다.
▷관계 데이터베이스에서 릴레이션들 간의 관계를 나타내기 위해서 사용된다.
▶다른 릴레이션의 기본 키를 탐조하는 외래 키
▶자체 릴레이션의 기본 키를 탐조하는 외래 키
▶기본 키의 구성요소가 되는 외래 키
*왜래 키는 기본 키의 역할을 겸하지 않을 땐 NULL값을 가질 수 있다.