June 02, 2020 ( last updated : June 03, 2020 )
DataBase
https://github.com/sneakstarberry/
데이터 베이스 시험을 대비하여서 처음부터 정리를 하고 있다. 지금은 두번째 정리이다.
데이터베이스의 구조를 <u>명시</u>
할 수 있게 하고, 사용자가 데이터를 효율적으로 질의하고 수정할 수 있도록 하며, 시스템의 고장이나 권한이 없는 사용자로부터 데이터를 안전하게 보호하며, 동시에 여러 사용자가 데이터베이스를 접근하는 것을 제어하는 소프트웨어 패키지| 공식적인 용어 | 자주 사용되는 용어 | 화일 시스템의 용어 | | ————- | —————— | —————— | | 릴레이션 | 테이블 | 화일 | | 투플, 카디날리티 | 행/레코드 | 레코드 | | 애트리뷰트, 차수 | 열, 속성, 컬럼 | 필드 |
데이터베이스의 구조를 기술하는데 사용되는 개념들의 집합인 구조(데이터 타입과 관계), 이 구조 위에서 동작하는 연산자들, 무결성 제약 조건들로 이루어짐
데이터 모델을 보고 그 데이터베이스가 어떻게 생겼는지(구조(structure)), 그 데이터베이스는 어떤 기능을 담당하는지(연산(operation)), 그 데이터베이스가 오류가 없도록 지켜져야 하는 규칙들은 뭐가 있는지(무결성 제약 조건(constraints)), 이런 세가지 조건이 데이터 모델 안에 담겨져 있다.
DM := <Structure, Operation, Constraints>
=> 이론적 데이터 모델을 SW로 구현한 것이 바로DBMS이다.
릴레이션의 관점에서 모든 데이터를
논리적으로 구성
하며선언적인 질의어(원하는 데이터what만 명시, 어떻게 찾는 지how는 명시 X)를 통한 데이터 접근을 제공
한다. 한 릴레이션은 데이터베이스에 표현되는한 엔티티(하나의 주제만 들어가야한다.)
에 관한 정보를 저장한다. 릴레이션의 각 행을레코드(=튜플)
라고 부른다. 릴레이션의 하나의 열을애트리뷰트
라고 부른다. 애트리뷰트는 서로 이름이 달라야하고 적당한 의미를 갖고 있어야한다.차수(degree): 열들의 개수(최소 1개) 카디날리티(cardinality): 행들의 개수(=튜플의 개수) 도메인: 한 애트리뷰트에 나타날 수 있는 값들의 집합(=데이터 타입)이다. 각 애트리뷰트의 도메인의 값들은 원잣값이다.
관계 데이터 모델에서 릴레이션은 투플들의 집합이다.
각 릴레이션은 오직 하나의 레코드 타입만 포함한다.
ㄹㅇ 4대 특징
키는 애트리뷰트들의 모임이다.
키를 구성하는 애트리뷰트 수가 적을수록 좋다. 키가 작을수록 인덱스의 크기가 줄어들고 인덱스를 검색하는 시간이 단축된다.
한 릴레이션 내의 특정 투플을 고유하게 식별하는 하나 이상의 애트리뷰트의 모임이다.
각 투플을 고유하게 식별(슈퍼키의 속성)하는 최소한의 애트리뷰트들의 모임 (유일성 + 최소성)
후보 키도 두 개 이상의 애트리뷰트로 이루어질 수 있으며 이 경우에 복합키라고 부른다.
어떤 시점에 중복된 값이 없다고 해서 미래에도 중복이 발생하지 않는다고 단정할 수는 없다.
후보 키가 두 개 이상 있으면 데이터베이스 설계자 도는 데이터베이스 관리자가 이들 중에서 하나를 기본 키로 선정한다.
자연스러운 기본 키를 찾을 수 없는 경우에는 레코드 번호와 같이 종종 인위적인 키 애트리뷰트를 릴레이션에 추가할 수 있다. 이를 대리 키(surrogate key), 인공 키라고 한다.
고려사항
- 애트리뷰트가 항상 고유한 값을 가질 것인가
- 애트리뷰트가 확실하게 널값을 갖지 않을 것인가
- 애트리뷰트의 값이 변경될 가능성이 높은 애트리뷰트는 기본 키로 선정하지 말 것
- 가능하면 작은 정수 값이나 짧은 문자열을 갖는 애트리뷰트
- 가능하면 복합 기본 키를 피할 것
기본 키로 선정되지 않은 후보 키
어떤 릴레이션의 기본 키를 참조하는 애트리뷰트이다. 릴레이션들 간의 관계를 나타내기 위해서 사용 외래 키 애트리뷰트는 참조되는 릴레이션의 기본 키와 동일한 도메인을 가져야 한다.
Originally published June 02, 2020
Latest update June 03, 2020
Related posts :