관계형 데이터베이스의 구조

관계형 데이터 베이스의 개요

  • 개체나 관계를 릴레이션이라는 표로 표현한다.

  • 장점 : 변환이 용이

  • 단점 : 성능이 다소 떨어짐

관계형 데이터베이스의 Relation 구조

  • 릴레이션은 릴레이션 스키마와 릴레이션 인스턴스로 이루어진다.

튜플

  • 릴레이션을 구성하는 각각의 행을 의미한다.(행은 가로야)
  • 속성의 모임으로 구성되어있다.
  • 파일 구조에서 레코드와 같은 의미이다.(좋은 표현인거 같다.)
  • 튜플의 수 = 카디널리티, 기수, 대응수

속성

  • 데이터 베이스를 구성하는 가장 작은 논리적 단위이다.
  • 파일 구조상의 데이터 항목 또는 데이터 필드에 해당된다.
  • 개체의 특성을 기술한다.
  • 속성의 수 = degree, 차수

도메인

  • 하나의 속성이 취할 수 있는 같은 타입의 원자값들의 집합

릴레이션의 특징

  • 튜플은 중복이 안된다
  • 튜플 사이에는 순서가 없다.
  • 릴레이션은 실시간으로 바뀐다.
  • 릴레이션 스키마를 구성하는 속성의 순서도 중요하지 않다.
  • 속성은 유일하나 속성의 값은 중복 가능

관계형 데이터 베이스의 제약 조건

키(key)의 개념 및 종류

  • 튜플을 구별할 수 있게 하는 속성 이다.

  • 기본 키로 사용될 수 있는 속성

  • 릴레이션 당 적어도 하나의 후보키가 존재

  • 후보키의 필수적 속성

    • 유일성 : 하나의 키 값으로 하나의 튜플 만을 유일하게 식별할 수 있어야한다.
    • 최소성 : 모든 레코드들을 유일하게 식별하는 데 꼭 필요한 속성으로만 구성

기본키

  • 후보키 중에서 선택한 주 키(primally key)이다.
  • 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성
  • null 값을 못 가짐
  • 기본키로 정의된 속성에는 동일한 값이 중복되어 저장될 수 없다.

대체키

  • 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키들을 말한다.
  • 보조키라고도 한다.

슈퍼키

  • 릴레이션 내에 속성들의 집합으로 구성된 키
  • 유일성은 만족시키지만 최소성은 만족시키지 못함

외래키

  • 외래키는 참조되는 릴레이션의 기본키와 대응되어 릴레이션 간에 참조관계를 표현하는데 중요한 도구이다.
  • 외래키로 지정되면 참조 릴레이션의 기본키에 없는 값은 입력할 수 없다.

무결성

개체 무결성

  • 릴레이션에서 기본키를 구성하는 속성은 NULL값이나 중복값을 가질 수 없다.

참조 무결성

  • 외래키의 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야한다.
  • 참조할 수 없는 외래키 값을 가질 수 없다.

관계 대수 및 관계해석

관계 대수의 개요

  • 절차적 언어이다.

  • 릴레이션을 처리하기 위해 연산자와 연산규칙을 제공하는 언어

  • 피연산자와 결과 모두 릴레이션이다.

  • 질의에 대한 해를 구하기 위해 수행해야할 연산의 순성를 명시

  • 순수 관계 연산자 :Select, Project, Join, Division

  • 일반 집합 연산자 : UNION, INTERSECTION, DIFFERENCE,CARTENSIAN PRODUCTION

순수 관계 연산자

  • Select

    • 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션을 만든다.
    • 릴레이션의 행에 해당하는 튜플을 구하는거라 수평연산 이라고도 한다
    • 연산자 기호는 시그마
  • Proejct

    • 수직 연산
    • 조건을 만족하는 어트리뷰트만 추출
    • 연산자 기호는 파이
  • Join

    • 공통 속성을 중심으로 두개의 릴레이션을 합치는 연산자
    • 기호는 세모 두개 붙인거
  • Division

    • 특이한 놈임
    • 체감상 나누기와 중복 제거가 합쳐진 느낌

일반 집합 연산자

  • 합병 조건 : 두 릴레이션 간에 속성의 수가 같고, 각각의 속성이 취할 수 있는 도메인의 범위가 같아야한다.

관계해석

  • 관계 데이터 모델의 제안자인 코드가 predicate calculus에 기반을 두고 관계 데이터 베이스를 위해 제안함
  • 종류 : 튜플 관계해석, 도메인 관계해석
  • 비절차적 특성을 가지고 있다. –> 원하는 정보가 무엇인지만 파악하는것 (종류만 봐도 감 오잖아 튜플 도메인 순서가 없거든)
  • 관계 대수로 표현한 식은 관계해석으로 표현할 수 있다..
  • 질의어로 표현한다.
  • 관계 데이터의 연산을 표현하는 방법, 원하는 정보를 정의할 때는 계산 수식 사용

정규화

정규화의 개요

  • 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성으로 쪼개어 바람직한 스키마로 만들어가는 과정
  • 하나의 종속성이 하나의 릴레이션에 표현될 수 있도록 분해하는 과정
  • 논리적 설계 단계에서 수행

정규화의 목적

  • 데이터 구조의 안정성을 최대화
  • 어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능하게 만든다.
  • 효과적인 검색 알고리즘
  • 중복을 배제! 각종 Anomaly 예방 차원
  • 데이터 삽입시 릴레이션을 재구성할 필요성을 줄임

Anomal(이상)dml rosua alc whdfb

  • 삽입 이상
    • 데이터 삽입시 원하지 않는 값들도 함께 삽입되는 현상
  • 삭제 이상
    • 튜플 을 삭제 할 때 원치 않는 값들도 같이 삭제되는 연쇄 삭제 현상 이 일어나는 현상
  • 갱신 이상
    • 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 모순 이 생기는 현상

정규화의 원칙

  • 정보의 무손실 표현
  • 분리의 원칙 : 하나의 독립된 관계썽은 하나의 독립된 릴레이션으로 분리시켜야 한다.
  • 데이터의 중복성 감소

SQL의 개념

SQL의 개요

  • sequel(IBM 연구소에서 개발)에서 유래한다.
  • 국제 표준 데이터베이스 언어
  • 관계 대수와 관계 해석을 기초로 한 혼합 데이터 언어
  • 질의어지만 데이터 구조 정의, 데이터 조작, 데이터 제어 기능을 모두 갖추고 있음

SQL의 분류

DDL

  • 논리적 데이터 구조와 물리적 데이터 구조의 사상을 정의
  • 데이터 베이스 관리자나 데이터베이스 설계자가 사용한다.
명령어 기능
CREATE SCHEMA, DOMAIN,TABLE, VIEW, INDEX 정의
ALTER TABLE에 대한 정의를 변경하는데 사용
DROP SCHEMA DOMAIN TABLE VIEW INDEX 삭제

DML

  • 데이터 베이스 사용자가 응용프로그램이나 질의어를 통하여 실질적으로 데이터 처리하는데 사용되는 언어

  • 데이터 베이스 사용자와 데이터 베이스 관리 시스템 간의 인터페이스 제공

명령어 기능
SELECT 테이블에서 조건에 맞는 튜플을 검색
INSERT 테이블에 새로운 튜플을 삽입한다.
DELETE 테이블에서 조건에 맞는 튜플을 삭제한다.
UPDATE 테이블에서 조건의 맞는 튜플의 내용을 변경한다.

DCL

  • 데이터의 보안 무결성 회복 병행 수행 제어 등을 정의하는데 사용되는 언어
  • 데이터 베이스 관리자가 데이터 관리를 목적으로 사용한다
명령어 기능
COMMIT 명령에 의해 수행된 결과를 실제 물리적 디스크로 저장하고 데이터 베이스 조작 작업이 정상적으로 완료되엇음을 관리자에게 알려준다.
ROLLBACK 데이터 베이스 조작 작업이 비정상적으로 종료되었을 때 원래의 상태로 복구한다.
GRANT 데이터베이스 사용자에게 사용 권한을 부여한다.
REVOKE 데이터 베이스 사용자의 사용 권한을 취소한다.

VIEW

  • 사용자에게 접근이 허용된 자료를 제한적으로 보여주기 위해 하나 이상의 기본 테이블로 부터 유도된 이름을 가지는 가상의 테이블
  • 물리적 저장장치에 존재하지 않지만, 사용자에게는 있는 것으로 간주된다.
  • 데이터 보정작업, 처리과정 시험 등 임시적인 작업을 위한 용도로 활용된다.
  • VIEW는 JOIN문의 사용 최소화로 사용상의 편의성을 제공한다

VIEW의 특징

  • 논리적 독십성 제공
  • 관리가 용이하고 명령문이 간단함
  • VIEW에 나타나지 않는 데이터를 효율적인 기법으로 사용할 수 있다.
  • 기본 테이블의 기본키를 포함한 속성 집합으로 뷰를 구성해야만 삽입, 삭제, 갱신, 연산이 가능하다
  • 일단 정의된 뷰는 다른 뷰 정의에 기초가 될 수 있다.
  • VIEW를 삭제하면 그 VIEW를 기초로 정의된 다른 뷰들도 삭제된다.

VIEW의 장단점

  • 장점

    • 논리적 데이터 독립성 제공
    • 동시에 여러 사용자의 상이한 응용이나 요구를 지원
    • 사용자의 데이터 관리를 간단하게 해준다.
    • 접근 제어를 통한 자동 보안 이 제공된다.
  • 단점

    • 독립적인 인덱스를 가질 수 없다.
    • ALTER VIEW문을 사용할 수 없다. –> 뷰의 정의를 변경할 수 없다.
    • 뷰로 구성된 내용에 대한 삽입 삭제 갱신 연산에 제약이 따른다

VIEW 정의문

  • SELECT문을 부질의로 사용하여 SELECT문의 결과로 VIEW를 생성한다.
  • 부질의로서의 SELECT문에는 UION ORDER BY절을 사용 할 수 없다.

VIEW 삭제문

  • ALTER를 사용 못하니까 DROP 후 다시 생성한다.

시스템 카탈로그

시스템 카탈로그의 의미

  • 시스템 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터 베이스 이다.
  • 시스템 카탈로그 내의 각 테이블은 사용자를 포함하여 DBMS에서 지원하는 모든 데이터 객체에 대한 정의나 명세에 관한 정보를 유지 관리하는 시스템 데이터 베이스이다.
  • DDL의 결과로 데이터 베이스 구조 및 통계정보를 저장한다.
  • 카탈로그들이 생성되면 자료 사전(DATA DICTIONARY)에 저장된다.
  • 걍 META DATA라고도 함

카탈로그의 특징

  • 카탈로그도 시스템 테이블로 구성되어 있어 일반사용자도 SQL로 내용을 볼 수 있다.

  • INSERT, DELETE UPDATE로 카탈로그를 갱신하는 것은 허용되지 않는다.

  • 카탈로그는 DBMS가 자가 생성하고 유지한다.

  • 분산 시스템 의 경우에는 모든 제어 정보도 가진다.

카탈로그 / 데이터 사전을 참조하기 위한 DBMS 내의 모듈 시스템

  • DDL Compiler

    • DDL을 메타데이터를 갖는 테이블(카탈로그) 데이터 사전에 저장시킴
  • DML Compiler

    • 응용 프로그램에 삽입된 DML 문을 주 언어로 표현한 프로시저 호출로 변환하여 질의 처리기와 상호 통신한다.
  • DATA Directory

    • 데이터 사전에 수록된 데이터를 실제로 접근하는데 필요한 정보를 관리 유지하는 시스템
    • 데이터 디렉터리는 시스템만 접근 할 수 있다.
  • 질의 최적화기

    • 사용자의 요구를 효율적인 형태로 변화하고 질의를 처리하는 좋은 전략을 모색
  • 트랙잭션 처리기

    • 복수 사용자 환경에서 평행으로 동시에 일어나는 트랜잭션 문제를 해결하여, 각각의 사용자가 데이터베이스 자원을 베타적으로 이용할 수 있도록 한다.