본문 바로가기
정보처리기사/정보처리기사 필기

정보처리기사 필기 준비_데이터베이스

by sjs_2215 2019. 7. 8.

정처기 필기_데이터베이스


출처: 시나공 summary 정보처리기사 필기


- 데이터베이스의 정의

특징: 통합된 데이터(Integrated) & 저장된(Stored) 데이터 & 운영(Operational) 데이터 & 공용(Shared) 데이터


- 정규화의 목적

: 어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능하게 만든다.

: 중복을 배제하여 삽입, 삭제, 갱신 이상의 발생을 방지하는 것이다.

: 데이터 삽입시 릴레이션을 재구성할 필요성을 줄인다.

: 효과적인 검색 알고리즘을 생성할 수 있다.


트리에서 차수(Degree)

가장 차수가 많은 노드의 차수(한 노드에 자식노드로 뻗어져있는 줄의 개수)이다.


시그마

=SELECT

: 조건을 만족하는 릴레이션의 수평적 부분집합을 구성한다.


자료 구조의 분류

  • 선형 구조: 스택,큐,데크,연결리스
  • 비선형 구조: 트리, 그래프

Anomaly 이상

= 데이터베이스 내에서 데이터들이 불필요하게 중복되어 릴레이션 조작 시 예기치 못한 곤란한 현상을 뜻한다.


Deque 데크

= 방향에서 입/출력이 가능선형 자료구조로 2개의 포인터를 이용하여 리스트의 양쪽 끝 모두에서 삽입/삭제가 가능하다.




- 로킹(Locking)

정의: 하나의 트랜잭션이 데이터를 액세스 하는 동안 다른 트랜잭션이 그 데이터 항목을 액세스할 수 없도록 하는 방법

특징: 로킹의 대상이 되는 객체의 크기를 로킹 단위라고 한다

​ : 데이터베이스, 파일, 레코드 등은 로킹 단위가 될 수 있다

​ : 로킹의 단위가 커지면 데이터베이스의 공유도, 즉 병행성은 감소한다

​ : 로킹 단위가 크면 로크 수가 적어 관리하기 쉽지만 병행성 수준이 높아진다




데이터 모델에 표시할 사항

1. 구조(Structure)

논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질을 표현함

2. 연산(Operation)

데이터베이스에 저장된 실제 데이터를 처리하는 방법을 표시하는 것으로서 데이터베이스를 '조작'하는 기본 도구

3. 제약조건(Constraint)

데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약조건을 표시함.




관계대수 관계해석
원하는 정보와 그 정보를 어떻게 유도하는가를 기술
절차적
피연산자가 릴레이션이고, 결과도 릴레이션
릴레이션 조작을 위한 연산의 집합
연산의 순서를 명시
순수 관계 연산자와 일반 집합 연산자
원하는 정보가 무엇이라는 것 정의
비절차적
계산 수식을 사용
튜플/ 도메인 관계해석
Predicate Calculus
질의어로 표현한다.

관계대수와 관계해석은 관계 데이터베이스를 처리하는 기능과 능력 면에서 동등하다.




- 정규화(Normalization)

= 더 작은 테이블로 분해해 가면서 종속성을 제거하는 것

= 속성 간의 종속성을 피하기 위한 것

테이블을 결합하여 종속성을 증가시키는 것(x) 개체 간의 종속성을 피하기 위한 것 (x) 연산 시간을 감소한다 (x)

= 정규화는 데이터베이스의 논리적 설계 단계에서 수행한다.


- 정규화 목적

데이터 구조의 안정성을 최대화

데이터의 중복이나 이상(anomaly)을 방지하기 위한것. 오히려 연산시간이 늘어날 수 있다.

연산 시간을 감소한다 (x)

어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능하게 만든다

효과적인 검색 알고리즘을 생성할 수 있다.

중복을 배제하여 삽입/삭제/갱신 이상의 발생을 방지한다.

데이터 삽입 시 릴레이션을 재구성할 필요성을 줄인다.


- 정규화 과정

이행적 종속 관계

a->b 이고 b-> c일 때, a->c를 만족하는 관계이다.


비정규 릴레이션 ->(도메인이 원자값) 1NF ->(부분적 함수 종속 제거) 2NF ->(이행적 종속 제거) 3NF -> (결정자이면서 후보키가 아닌 것 제거) BCNF ->(다치 종속) 4NF ->(조인 종속성 이용) 5NF




- 개체-관계(Entity-Relationship) 모델

: 개념적 데이터 모델의 가장 대표적인 것으로, 1976년 Peter Chen 에 의해 제안되었다.

: 개체 타입(Entity Type)과 이들 간의 관계 타입(Relationship Type)을 이용해 현실 세계를 개념적으로 표현한다.

: 데이터를 개체(Entity), 관계(Relationship), 속성(Attribute)으로 묘사한다.

: e-r 다이어그램으로 표현한다

사각형: 개체 타입

마름모: 관계 타입

타원: 속성

선, 링크: 개체 타입과 속성 연결

: 특정 DBMS를 고려한 것이 아니기 때문에 관계 표현에 제한이 없다.




- 순차 파일(Sequential File)

대화식 처리보다 일괄처리에 적합한 구조이다

매체 변환이 쉬어 어떠한 매체에도 사용 가능

연속적인 레코드의 저장에 의해 레코드 사이에 빈 공간이 존재하지 않으므로 기억장치의 효율적인 이용이 가능하다.

레코드가 논리적인 처리 순서에 따라 연속된 물리적 저장 공간에 차례대로 기록되어 있다.

파일에 새로운 레코드를 삽입/삭제/수정하는 경우 파일 전체를 복사해야 하므로 시간이 많이 소요된다.

특정 레코드를 검색하려면 순차적으로 모든 레코드를 비교하면서 검색해야 하므로 검색 효율이 낮다. (즉각적인 응답을 요구하는 대화형 처리에는 적합하지 않다.)




- 색인 순차 파일(Indexed Sequential File)

: 파일을 조작할 때 색인 또는 오버프로를 위한 공간이 필요하고, 파일을 사용하던 중에 오버플로 레코드가 많아지면 재편성해야 하는 파일 구조이다.

: 색인을 이용한 순차적인 접근 방법을 제공하며 ISAM(Indexed Sequential Access Method)이라고도 한다.


색인 순차 파일의 구성

기본구역(prime area): 실제 레코드들을 기록하는 부분으로 각 레코드는 키 값 순으로 저장


색인구역(index area): 기본구역에 있는 레코드을의 위치를 찾아가는 색인이 기록되는 부분으로, 트랙 색인/실린더 색인/마스터 색인 구역으로 구분할 수 있음


오버플로 구역(overflow area): 기본 구역에 빈 공간이 없어서 새로운 레코드의 삽입이 불가능할 때를 대비하여 예비적으로 확보해 둔 부분

-실린더 오버플로 구역: 각 실리더마다 만들어지는 오버플로 구역으로, 해당 실린더의 기본 구역에서 오버플로된 데이터를 기록함

-독립 오버플로 구역: 실린더 오버플로 구역에 더 이상 오버플로된 데이터를 기록할 수 없을 때 사용할 수 있는 예비 공간으로, 실린더 오버플로 구역과는 별도로 만들어짐


색인순차 파일 장점:

순차 처리와 랜덤 처리가 모두 가능

효율적인 검색 가능, 레코드의 삽입/삭제/갱신이 용이


색인순차 파일 단점:

색인구역과 고버플로우 구역을 구성하기 위한 추가 기억 공간이 필요

파일이 정렬되어 있어야 하므로 추가,삭제가 많으면 효율이 떨어진다

색인을 이용한 액세스를 하기 때문에 액세스 시간이 랜덤 편성 파일보다 느리다.



- 스키마

  1. 정의

: 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한다.

: 데이터베이스를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약조건 등에 관해 전반적으로 정의한다.

: 스키마는 사용자의 관점에 따라 외부/개념/내부 스키마로 나뉜다.

: 데이터 사정에 저장되며, 다른 이름으로 메타 데이터라고도 한다.


- 외부 스키마

: 사용자나 응용 프로그래머가 각 '개인의 입장'에서 필요로하는 데이터베이스의 논리적 구조를 정의한다.

: 전체 데이터베이스의 한 논리적인 부분으로 볼 수 있으므로 서브 스키마라고도 한다.

: 하나의 데이터베이스 시스템에는 여러 개의 외부 스키마가 존재할 수 있으며, 하나의 외부 스키마를 여러 개의 응용 프로그램/사용자가 공용할 수 있다.

: 같은 데이터베이스에 대해서도 서로 다른 관점을 정의할 수 있도록 허용한다.

: 일반 사용자는 질의어(sql)를 사용하여 db를 사용한다.


- 개념 스키마

: 데이터베이스의 전체적인 '논리적 구조'로서, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 데이터베이스로 '하나만 존재'한다.

: 개체 간의 관계와 제약조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의한다.

: 단순히 스키마라고 하면 개념 스키마를 의미한다.

: 기관이나 조직체의 관점에서 데이터베이스를 정의한 것이다.

: 데이터베이스 관리자에 의해서 구성된다.


- 내부 스키마

: '물리적 저장장치의 입장'에서 본 데이터베이스 구조로, 물리적인 저장장치와 밀접한 계층이다.

: 실제로 데이터베이스에 저장될 레코드의 물리적인 구조를 정의하고, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다.

: 시스템 프로그래머/설계자가 보는 관점의 스키마이다.

: 데이터베이스의 물리적 구조를 정의한다.

: 데이터의 실제 저장 방법을 기술한다.




- 트랜잭션의 특징

  1. Atomicity(원자성)

: 트랜젝션의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 함

: 트랜잭션의 모든 명령은 반드시 완벽히 수행되어야 하며, 모두가 완벽히 수행되지 않고 어느 하나라도 에러가 발생하면 트랜잭션 전부가 취소되어야 함


  1. Consistency(일관성)

: 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환함

: 시스템이 가지고 있는 고정 요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야 함


  1. Isolation(독립성, 격리성)

: 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들 수 없음

: 수행중인 트랜잭션은 완전히 완료될 때까지 다른 트랜잭션에서 수행 결과를 참조할 수 없음


  1. Durability(영속성, 지속성)

: 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함




- 데이터베스의 특징

  1. 실시간 접근성(Real Time Accessibility)

: 수시적이고 비형식적인 질의(조회)에 대하여 실시간 처리에 의한 응답이 가능함

  1. 계속적인 변화(Continuous Evolution)

: 새로운 데이터의 삽입, 삭제, 갱신으로 항상 최신의 데이터를 유지함

  1. 동시 공유(Continuous Sharing)

: 여러 사용자가 동시에 자기가 원하는 데이터를 이용할 수 있음

  1. '내용'에 의한 참조(Content Reference)

: 데이터베이스에 있는 데이터를 참조할 때 데이터 (주소나 위치에 의해서가 아니라) 사용자가 요구하는 데이터 내용으로 데이터를 찾음


+데이터베이스는 자료의 중복을 배제한 데이터의 모임이다.




- 데이터베이스 언어(Database Language)

  1. DDL(Data Definition Language) 데이터 정의 언어

정의: DB구조, 데이터 형식, 접근 방식 등 DB를 구축하거나 수정할 목적으로 사용하는 언어이다.

​ : 번역한 결과가 데이터 사전(Data-Dictionary)이라는 특별한 파일에 여러 개의 테이블로 저장된다


기능: 외부 스키마 명세 정의

​ : 데이터베이스의 논리적 데이터 구조와 물리적 데이터 구조의 정의 및 수정

​ : 논리적 데이터 구조와 물리적 데이터 구조 간의 사상 정의

​ : 스키마에 사용되는 제약조건에 대한 명세 정의

​ : 데이터의 물리적 순서 규정


종류: CREATE, ALTER, DROP


  1. DML(Data Manipulation Language) 데이터 조작 언어 = 서브 언어

정의: 사용자로 하여금 데이터를 처리할 수 있게 하는 도구로서 사용자(응용 프로그램)와 DBMS 간의 인터페이스를 제공한다

​ : 응용 프로그램을 통하여 사용자가 DB의 데이터를 실질적으로 조작할 수 있도록 하기 위해 C, COBOL 등의 호스트 언어에 DB 기능을 추가시켜 만든 언어이다

​ : 대표적인 DML에는 질의어가 있으며, 질의어는 터미널에서 주로 이용하는 비절차적 데이터 언어이다


종류: SELECT, INSERT, DELETE, UPDATE


  1. DCL(Data Control Language) 데이터 제어 언어

정의: 무결성, 보안 및 권한 제어, 회복 등을 하기 위한 언어이다.

​ : 데이터를 보호하고 데이터를 관리하는 목적으로 사용된다.

​ : 데이터베이스를 공용하기 위한 데이터 제어를 정의하고 기술한다.


기능: 불법적인 사용자로부터 데이터를 보호하기 위한 데이터 보안

​ : 데이터의 정확성을 위한 무결성 유지

​ : 시스템 장애에 대비한 데이터 회복과 병행수행 제어

​ : 데이터베이스를 공용하기 위한 데이터 제어를 정의하고 기술한다.


종류: COMMIT, ROLLBACK, GRANT, REVOKE


- ROLLBACK 연산

= 트랜잭션의 실행이 실패하였음을 알리는 연산자. 트랜잭션이 수행한 결과를 원래의 상태로 원상 복귀시키는 연산




- 데이터베이스 설계

고려사항: 무결성/일관성/회복성/보안성/효율성/확장성 유지 (종속성은 고려하지 X)


  1. 개념적 설계(정보 모델링, 개념화)

: 정보의 구조를 얻기 위하여 현실 세계의 무한성과 계속성을 이해하고, 다른 사람과 통신하기 위하여 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정이다.

: 스키마 모델링과 트랜잭션 '모델링'을 병행하여 수행한다.

: DBMS에 '독립적인' 개념 스키마를 설계한다.

: 개념 스키마는 개념적 설계 단계에서 설계한다. (외부 스키마는 데이터베이스를 작성한 후 운영중에 작성한다.)


  1. 논리적 설계(데이터 모델링)

: 현실 세계에서 발생하는 자료를 컴퓨터가 처리할 수 있는 물리적 저장장치에 저장할 수 있도록 변환하기 위해 특정 DBMS가 지원하는 논리적 자료 구조로 변환시키는 과정이다.

: 개념적 설계가 개념 스키마를 설계하는 단계라면 논리적 설계에서는 '개념 스키마를 평가 및 정제하고 특정 DBMS에 '종속적인' 논리적 스키마를 설계하는 단계'이다.

: 트랜잭션의 '인터페이스'를 설계한다.

: 관계형 데이터베이스라면 테이블을 설계하는 단계이다.


  1. 물리적 설계(데이터 구조화)

: 논리적 설계 단계에서 논리적 구조로 표현된 데이터를 디스크 등의 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정이다.

: 저장 레코드 양식 설계, 레코드 집중의 분석 및 설계 파일의 저장 구조 및 탐색 기법등의 설계를 수행하는 단계이다.

: 고려사항은 반응시간, 공간 활용도, 트랜잭션 처리량이다.

: 트랜잭션을 '작성'한다.




- 릴레이션의 특징

: 속성은 더 이상 쪼갤 수 없는 원자값만을 저장한다.

: 한 릴레이션에 포함된 튜플들은 모두 상이하다. (=모든 튜플은 서로 다른 값을 갖는다)

: 한 릴레이션에 포함된 튜플 사이에는 순서가 없다, 릴레이션 스키마를 구성하는 속성들 간의 수너도 중요하지 않다.

: 튜플들의 삽입, 삭제 등의 잡업으로 인해 릴레이션은 시간에 따라 변한다.

: 속성의 명칭은 유일해야 하지만, 속성을 구성하는 값은 동일한 값이 있을 수 있다.

: 튜플을 유일하게 식별하기 위해 속성들의 부분집합을 키(Key)로 설정한다.

__Degree( 속성의 수 = 열의 수) __

Cardinality( 튜플의 수 = 행의 수)

출처: https://dev-ahn.tistory.com/66




- 뷰(View)

: 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 가상 테이블이다.

: 저장장치 내에 물리적으로 존재하지 않지만, 사용자에게는 있는 것처럼 간주된다.


  1. 뷰의 특징

: 가상 테이블이기에 물리적으로 구현되어 있지 않다.

: 필요한 데이터만 뷰로 정의해서 처리할 수 있기 때문에 관리가 용이하고 명령문이 간단해진다.

: '기본 테이블의 기본키를 포함한 속성(열) 집합으로 뷰를 구성해야만' 삽입, 삭제, 갱신 연산이 가능하다.

: 정의된 뷰는 다른 뷰의 정의에 기초가 될 수 있다.

: 하나의 뷰를 삭제하면, 그 뷰를 기초로 정의된 다른 뷰도 자동으로 삭제된다.

: 뷰는 정의를 변경할 수 없기 떄문에 ALTER문을 사용할 수 없습니다. 뷰의 정의를 변경하려면 지우고 다시 만들어야 한다.


  1. 뷰의 장점

: 논리적 데이터의 '독립성'을 제공한다.

: 접근 제어를 통한 자동 보안이 제공된다.

: 동일 데이터에 대해 동시에 여러 사용자의 상이한 응용이나 요구를 지원해준다.


  1. 뷰의 단점

: 독립적인 인덱스를 가질 수 없다.

: 뷰의 정의를 변경할 수 없다.

: 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신 연산에 제약이 따른다. (제약: 기본 테이블의 기본키를 포함한 속성(열) 집합으로 뷰를 구성해야만)


//뷰 정의문
CREATE VIEW 뷰이름[(속성이름[,속성이름])]
AS SELECT문;

//뷰 삭제문
DROP VIEW 뷰이름 {RESTRICTED | CASCADE};



- 시스템 카탈로그

: 시스템 그 자체에 관련이 있는 스키마 및 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스이다.

: 데이터베이스에 포함되는 모든 데이터 객체에 대한 정의나 명세에 관한 정보를 유지관리하는 시스템 테이블이다.

: 데이터 정의어(DDL)의 결과로 구성되는 기본 테이블, 뷰, 인덱스, 패키지, 접근 권한 등의 데이터베이스 구조 및 통계 정보를 저장한다. (DDL의 결과는 사용하는 DBMS의 종류에 따라 다르게 생성되기에, 동일한 구조로 필요한 정보를 제공하지 X)

: 카탈로그들이 생성되면 자료 사전(Data Dictionary)에 저장되기 떄문에 좁은 의미로는 카탈로그를 자료 사전이라고도 한다.

: 카탈로그에 저장된 정보를 메타 데이터라고도 한다.


  1. 시스템 카탈로그의 특징

: 가상 테이블이 아니라 실제로 존재하는 테이블이다.

: 카탈로그 자체도 시스템 테이블로 구성되어 있어 일반 이용자도 SQL을 이용하여 내용을 검색해 볼 수 있다.

: DBMS가 스스로 생성하고 유지한다.

: INSERT, DELETE, UPDATE문으로 갱신하는 것은 허용하지 않는다.

: 카탈로그는 사용자가 sql문을 실행시켜 기본 테이블, 뷰, 인덱스 등에 변화를 주면 시스템이 자동으로 갱신된다.




- 분산 데이터베이스의 장/단점

1. 장점

자료의 공유성 향상, 분산 제어 가능, 시스템 성능 향상

효용성과 융통성이 높음, 신뢰성/ 가용성이 높음, 점증적 시스템 용량 확장이 용이, 지역 자치성이 높음


2. 단점

데이터베이스 설계가 어려움, 소프트웨어 개발 비용이 증가, 처리 비용이 증가,

잠재적 오류가 증가, DBMS 가 수행할 기능이 복잡




-병행제어의 로킹(Locking)

로킹 단위가 작아지면 병행성 수준이 높아진다. = 로킹의 단위가 커지면 병행성 수준이 낮아진다.

로킹은 주요 데이터의 액세스를 상호 배타적으로 운영하는 것이다.

로킹 단위는 병행제어에서 한꺼번에 로킹할 수 있는 객체의 크기를 의미한다.

데이터베이스, 파일, 레코드 등은 로킹 단위가 될 수 있다.




- 후위 운행(Postorder) root 제일 나중에

post order는 left-right-root이다.

트리를 운행하려면 먼저 서브 트리를 하나의 노드로 생각할 수 있도록 서브 트리 단위로 묶습니다.


- 중위 운행(Inorder)

Inorder는 left-root-right이다.


전위 운행(Preorder) root 를 제일 먼저

Preorder는 root-left-right이다.


- 스택

스택은 서브루틴 호출, 인터럽트 처리, 수식 계산 및 수식 표기법에 응용된다.


- 데이터베이스에서 사용되는 널(NULL)

공백도, 영(Zero)도 아닌 부재 정보를 나타낸다.




해싱 테이블 관련 용어

Synonym: 같은 home address(홈주소)를 갖는 레코드들의 집합

Collision: 서로 다른 2개 이상의 레코드가 같은 주소를 갖는 현상

Bucket: 하나의 주소를 갖는 파일의 한 구역을 의미. 버킷의 크기는 같은 주소에 포함될 수 있는 레코드의 수를 의미

Overflow: 계산된 home address의 bucket 내에 저장할 기억공간이 없는 상태

​ : bucket을 구성하는 slot이 여러 개 일 때는 collision은 발생해도 overflow는 발생하지 않을 수 있음




- 주요 알고리즘의 이해

  • 버블 정렬

=둘씩 짝지어서 정렬해주는 것. ex) 1-2번째끼리 정렬, 2-3번째끼리정렬 ~~ 반복.

85624

->58624->56824->56284->56248

->56248->52648->52468

->25468->24568


  • 선택 정렬

=이건 정렬해주는데, 정렬해서 바꿀때 서로 위치를 바꿔줘야 함.

ex) 1회차: 1-2끼리 정렬, 1-3끼리 정렬, 1-4끼리 정렬 & 2회차: 2-3끼리 정렬, 2-4끼리 정렬 ~반복

85624

->58624->28654

->28654->26854->25864->24865

->24865->24685->24586

->24586->24568


  • 삽입 정렬

=2번째 값을 (1)범위랑 비교해서 제대로 된 위치에 삽입, 3번째 값을 (12)범위랑 비교해서 제대로 된 위치에 삽입, 4번째 값을 (13) 범위랑 비교해서 제대로 된 위치에 삽입. 이건 서로 위치 교환 할 필요 X. 제대로된 위치에 삽입하면 됨

85624

->58624

->56824

->25684

->24568


  • 2-way 병합 정렬 (2 way merge sort)

=2개씩 쌍 만들기, 그 쌍안에서 정렬. 4개씩 쌍 만들기, 그 안에서 정렬. ~~ 반복.

71,2,38,5,7,61,11,26,53,42

-> (71,2) (38,5) (7,61) (11,26) (53,42) -> (2,71) (5,38) (7,61) (11,26)(42,53)

->((2,71) (5,38))((7,61) (11,26))(42,53)-> (2,5,38,71) (7,11,26,61)(42,53)

->((2,5,38,71) (7,11,26,61))(42,53) ->(2,5,7,11,26,38,61,71)(42,53)

->(2,5,7,11,26,38,61,71)(42,53) -> 2,5,7,11,26,38,42,53,61,71




- between 연산

where(점수 between 90 and 95)

=점수 >= 90 and 점수 <= 95




- 무결성 Integrity

  1. 개체 무결성

: 한 릴레이션의 기본키를 구성하는 어떠한 속성값도 널(null) 값이나 중복값을 가질 수 없다는 것을 의미

  1. 참조 무결성

: 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다.

: 릴레이션 r1에 저장된 튜플이 릴레이션 r2에 있는 튜플을 참조하려면, 참조되는 튜플이 반드시 r2에 존재해야한다.

  1. 도메인 무결성

: 특정 속성의 값이 그 속성이 정의된 도메인에 속한 값이어야 한다는 규정




NoSQL(=Not Only SQL)

: 비정형 데이터의 저장을 위해 유연한 데이터 모델을 지원한다.

: 전통적인 관계형 데이터베이스 관리 시스템과는 달리 비관계형(non-relational) DBMS이다.

: 비정규화를 통해 데이터를 모델링한다.




- 즉각 갱신 기법

=데이터베이스 로그(log)를 필요로 하는 회복 기법



Comments