-
개인 공부 후 정리 목적인 글입니다.
1. 데이터와 데이터베이스
데이터(data) : 사실들 그 자체에 대한 일차적인 표현 ex) 물건
정보(information) : 자료를 가공하여 만든 결과물
지식(knowledge) : 데이터와 정보에 비해 좀 더 상위 수준의 개념으로 수정적이고 정적인 데이터나 정보에 비해,
이들을 처리하는 "방법"이나 어떤 근거에 의한 판단을 내리는데 필요한 분석과 판단에 관한"법칙" 등을 포함
데이터베이스(database) : 조직이나 개인이 사용하는 조작 가능한, 저장된 데이터의 모임 ex) 창고
특정 목적을 위해 데이터 처리(계산, 저장, 검색, 정렬 등) 작업을 수행- 일시적(transient) 데이터 : 해당 프로세스가 실행되는 동안만 일시적으로 존재
- 영구적(persistent) 데이터 : 어떤 프로세스의 생명주기에 종속적이지 않고 스스로 존재, 비휘발성 매체에 저장
데이터베이스 관리 시스템(DBMS, DataBase Management System)
컴퓨터에 저장되는 데이터베이스를 관리해주는 소프트웨어 시스템 ex) 창고관리인
DBMS가 제공하는 기능
- 정보를 표현할 수 있는 틀
- 데이터의 공유 기능
- 데이터 무결성 유지 기능
- 데이터 독립성
- 효율적인 자원관리 기능
- 데이터 보안성과 안정성 유지 기능
데이터베이스 시스템과 사용자
- 최종사용자 : end user, general user
- 응용 프로그램 개발자 : application programmer
- 데이터베이스 관리자 : DataBase Administrator : DBA
- DBMS 개발자 : DBMS developer
2. 관계형 데이터베이스
데이터 모델 : 물리적, 추상적으로 존재하는 현실세계를 단순화되고 정형화된 형태로 표현하는 하나의 방식
-> 실제 데이터가 갖는 특성을 살리면서, 목적에 맞게 관심있는 정보만을 단순화 하여 표현하는 방식관계형 데이터 모델(relational data model) : 테이블 형식을 이용하여 데이터들을 정의하고 설명한 모델
- 실세계의 데이터를 누구나 직관적으로 이해할 수 있는 형태로 기술할 수 있는 간단한 방식 제공
- 테이블을 릴레이션(relation)이라고 부름
- 릴레이션(relation)
- 수학적으로, 두 개 이상의 집합으로부터 각 집합을 구성하는 원소들의 순서쌍에 대한 집합을 의미
- 속성 - 필드, 컬럼(릴레이션을 구성하는 각 열의 이름)
- 튜플 - 레코드, 행(릴레이션의 각 행)
릴레이션 테이블 속성 필드(field), 컬럼(column) 튜플 레코드(record), 행(row) 도메인(domain) : 각 필드에 입력 가능한 값들의 범위
즉, 각 필드가 가질 수 있는 모든 값들의 집합으로 원자값이여야 됨
널(null) : 특정 필드에 대한 값을 알지 못하거나 아직 정해지지 않아 입력하지 못한 경우의 필드 값
(0이나 공백 문자와는 다름)
테이블 스키마(table schema) : 테이블 정의에 따라 만들어진 데이터 구조
차수(degree) : 테이블 스키마에 정의된 필드의 수
차수=1 : 단항 테이블
차수=2 : 이항 테이블
차수=n : n항 테이블테이블 인스턴스(table instance) : 테이블 스키마에 현실 세계의 데이터를 레코드로 저장한 형태
- 스키마는 한번 정의하면 거의 변함이 없지만 인스턴스는 수시로 바뀔 수 있음 - 레코드 삽입, 삭제, 수정 등
기수(cardinality) : 테이블 인스턴스의 레코드(행)의 수
테이블의 특성
- 중복된 레코드가 존재하지 않는다.
- 레코드 간의 순서는 의미가 없다.
- 레코드 내에서 필드의 순서는 의미가 없다.
- 모든 필드는 원자값을 가진다.
키(key) : 필드들의 일부로 각 레코드들을 유일하게 식별해낼 수 있는 식별자(identifier)
- 일반적으로 하나의 필드를 지정하여 키로 지정하나 여러개의 필드들로 구성 가능
복합키(composite key) : 두 개 이상의 레코드로 구성된 키
<키 값이 필요한 이유?>
- 레코드 간의 순서가 의미가 없으므로 레코드를 구분하기 위해서는 각 레코드의 값을 이용한다.
- 관계형 데이터 모델에서 특정 레코드를 구별하거나 탐색하기 위한 유일한 방법
슈퍼키(super key) : 아무런 제약 조건 없이 레코드들을 식별할 수 있는 필드의 집합
후보키(candidate key) : 최소한의 필드만으로 구성된 키
기본키(primary key) : 후보키 중에서 식별자로 정의한 하나의 키
- 되도록 하나의 필드로 구성된 후보키를 선정하는 것이 유리하다.
- 모든 가능한 인스턴스에 대해서도 키가 될 수 있어야 함
<키가 널(null)이 될 수 있나?>
- 기본키는 식별자의 기능을 함
- 기본키로 정의된 필드가 널을 갖게 되면 이러한 식별 기능을 상실함
왜래 키(foreign key) : 다른 테이블의 기본 키를 참조하는 필드집합
관계형 데이터베이스 정의(relational database)
관계형 데이터 모델에 기반하여 하나 이상의 테이블로 실세계를 표현한 데이터베이스
- 실세계를 관계형 데이터 모델이라는 추상적인 도구를 이용하여 표현한 것
- 테이블들을 컴퓨터의 기억 장치에 어떠한 방법으로 저장할 것인가에 대한 물리적인 구조까지 정의하지 않음
관계형 데이터베이스가 하나 이상의 테이블로 구성되어 있을 때
- 데이터베이스 스키마(database schema) : 테이블 스키마의 집합
- 데이터베이스 인스턴스(database instance) : 테이블 스키마들에 대한 테이블 인스턴스의 집합
'DB > Oracle' 카테고리의 다른 글
데이터 모델링의 주요 개념 (2) 2021.05.10