관계 데이터 연산

관계 데이터베이스 구조에서 사용되는 연산으로 관계 대수관계 해석 두 종류가 있다.

관계 대수(Relational Algebra)

릴레이션에서 사용자가 원하는 결과를 얻기 위해 연산자를 표현하는 방법으로 순수 관계 연산자와 일반 집합 연산자가 있다. 절차적 언어.

순수 관계 연산자

  • SELECT(σ : 시그마) : 조건을 만족하는 수평적 부분집합(튜플)을 구하기 위한 연산.
  • PROJECT(π : 파이) : 수직적 부분집합(속성)을 구하기 위한 연산.
  • JOIN(⋈) : 두 테이블로 부터 관련된 조건에 맞는 각각의 튜플들을 결합하여 하나의 테이블로 만드는 연산. 동일(Equi, =,중복포함, 조건에 맞지 않으면 포함 안함), 자연(Natural, 동일 조인에서 중복제거), 외부(Outer, 조건에 맞지 않으면 null로 표현), 세타(Theta, ≠ , ≤ ,〈, 중복속성 모두 표현 ) 조인 등 여러가지 종류가 있다.
  • DIVISION(÷) : ‘A÷B’는 B테이블의 조건을 만족하는 튜플들을 테이블 A에서 추출하는 연산.

일반 집합 연산자

  • 합집합(∪), 교집합(∩), 차집합(−), 카티션 프로덕트(×) 연산이 있다.

관계 해석(Relational Calculus)

릴레이션에서 결과를 얻기 위한 과정을 표현한 것으로 연산자 없이 정의하는 방법. 비 절자차적. {결과값 | 조건}으로 표현된다.

데이터베이스(Data Base) 개념

데이터베이스의 정의

데이터베이스란 어느 한 조직에서 업무 처리를 위해 다수의 응용시스템 혹은 다수의 사용자들이 공용으로 사용하기 위해 통합, 저장된 데이터의 집합을 말한다.

  • 통합된 데이터(Integrated Data) : 하나의 주제에 따라 중복을 최소화한 데이터의 집합.
  • 저장된 데이터(Stored Data) : 사용자나 응용시스템이 필요시 언제든지 이용할 수 있도록 저장된 데이터의 집합.
  • 공용 데이터(Shared Data) : 여러 사용자와 다수의 응용 시스템이 공유할 수 있도록 만든 데이터의 집합.
  • 운영 데이터(Operational Data) : 중복을 최소화하고 여러 사람이 공유함에 있어 문제가 발생하지 않도록 관리를 필요로 하는 데이터로 이용가치가 잇는 데이터의 집합.

데이터베이스의 특징

  • 계속적인 변화(진화)(Continuous Evolution) : 항상 최신 정보를 유지할 수 있도록 삽입, 삭제, 갱신이 이루어짐.
  • 동시 공유(Concurrent Sharing) : 여러 사용자가 동시에 접근하여 이용.
  • 실시간 접근성(Real-Time Accessibility) : 질의(Query)에 대해 실시간 처리 및 응답.
  • 내용에 의한 참조(Contents Reference) : 데이터의 물리적 주소나 위치에 의하지 않고 사용자가 요구하는 데이터 내용으로 검색.
  • 데이터 중복의 최소화(Redundancy Minimize) : 동일 데이터의 중복성을 최소화해야함.

데이터베이스의 구조(스키마)

스키마(Schema)는 데이터베이스의 전체적인 구조와 제약조건에 대한 명세를 기술, 정의한 것을 말하며 스킴(Scheme)이라고도 한다.

스키마의 구조 http://www.databaser.net/moniwiki/wiki.php/3%EB%8B%A8%EA%B3%84%EC%8A%A4%ED%82%A4%EB%A7%88%EA%B5%AC%EC%A1%B0
  • 외부 스키마(External Schema) : 전체 데이터 중 사용자가 사용하는 한 부분에서 본 논리적 구조. 서브 스키마.
  • 개념 스키마(Conceptual Schema) : 논리적 관점(사용자 관점)에서 본 전체적인 데이터 구조.
  • 내부 스키마(Internal Schema) : 물리적 저장 장치 관점(기계 관점)에서 본 데이터베이스의 물리적 구조.

데이터베이스 관리자(DBA : DataBase Administrator)와 사용자

데이터베이스 시스템과 관련된 모든 자원에 대해 기획과 통제를 하며, 데이터베이스 언어를 이용해 DBMS를 거쳐 데이터베이스 시스템의 전체적인 관리 운영에 책임을 지는 사람이나 집단을 DBA라고 한다.

이러한 관리자와는 대비되는 개념으로 데이터베이스를 사용하는 집단을 데이터베이스 사용자라 하며, 응용 프로그래머(Application Programmer : DB내용을 일반사용자가 사용할 수 있도록 응용프로그램을 개발하는 사람), 일반사용자(End User : DB의 내용을 실제 사용하는 사람이나 집단), 데이터 관리자(DA : Data Administrator, 데이터의 정의와 체계화, 감독 및 보안 업무를 담당)로 구분한다.

DBA와 DA를 구분하자면 DB관점에서, DA는 데이터 관점에서 업무를 수행한다.
( https://kaonsoft.tistory.com/23 )

데이터베이스의 설계

데이터베이스의 스키마를 정의하고 이에 따라 데이터베이스를 구현하기 하기 위한 전반적인 과정을 말한다.

데이터베이스 모델링 https://mangkyu.tistory.com/27
  1. 요구사항 분석 : 데이터베이스 정의, 요구사항에 따른 명세서(Specification)작성.
  2. 설계 : 개념적(Conceptual), 논리적(Logical), 물리적(Physical)설계.
  3. 구현 : 실제 데이터베이스 만드는 과정. 간결, 명료, 목적 일치, 유지 보수 용이.
  4. 운영 및 개선(유지보수) : 문제점과 개선점 파악.