반응형

관계형 데이터페이스 구조

  • 릴레이션(Relation): 데이터베이스 테이블
  • 튜플(Tuple) : 릴레이션을 구성하는 각각의 행, 튜플의 수를 카디널리티라 부른다.
  • 속성(Attribute) : 데이터베이스를 구성하는 가장 작은 논리적 단위
  • 도메인(Domain) : 도메인은 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자들의 집합

< 릴레이션의 특징 >

  • 한 릴레이션에 포함된 튜플은 모두 다르다.
  • 튜플 사이의 순서가 없고 삽입/삭제 등으로 인해 시간에 따라 변한다.
  • 속성 값은 논리적으로 더 이상 쪼갤 수 없는 원자값만을 저장한다.

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

  • 후보키 : 기본키로 사용할 수 있는 속성, 모든 튜플에 대해서 유일성과 최소성을 만족한다.
    • 유일성 : 하나의 키 값으로 하나의 튜플을 유일하게 식별 가능해야 한다.
    • 최소성 : 모든 레코드들을 유일하게 식별하는 데 꼭 필요한 속성만으로만 구성되어야 한다.
  • 기본키 : 후보키중 선택한 주 키로 NULL 값을 가질 수 없다.
  • 대체키 : 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키를 말한다.
  • 외래키 : 관계를 맺고 있는 두 실레이션에서 한 릴레이션이 참조하고 있는 다른 릴레이션의 기본키와 같은 릴레이션의 속성을 말한다.
  • 무결성 : 데이터의 정확성과 일관성을 유지하고 보증하는 것
    • 개체 무결성 : 릴레이션에서 기본키를 구성하는 속성은 NULL 값이나 중복값을 가질 수 없다.
    • 참조 무결성 : 외래키 값은 NULL 이거나 참조 릴레이션의 기본키 값과 동일해야 한다.

관계 대수 및 관계 해석

< 관계 대수 >

  • 관계형 데이터베이스에서 원하는 정보와 어떻게 유도하는지 기술하는 절차적인 언어11st_result

< 관계 해석 >

  • 관계 데이터의 연산을 표현하는 방법으로 원하는 정보를 정의할 때는 계산 수식을 사용한다.
  • 원하는 정보가 무엇인지만 정의하는 비절차적 특징을 지닌다.
  • 튜플 관계해석과 도메인 관계해석이 있다.

정규화

< 정규화 목적 >

  • 종속성 이론을 이용하여 잘못 설계된 관계셩 스키마를 더 작은 속성의 세트로 쪼개 바람직한 스키마로 만들어 가는 과정
  • 데이터 구조의 안정성을 최대화해 중복성 및 종속성을 배제시키는 방법으로 사용한다.
  • 효과적인 검색 알고리즘을 생성하고 중복을 배제해 삽입/삭제/갱신 이상의 발생을 방지한다.
    • 삽입 이상 : 릴레이션에 데이터를 삽입할 때 의도와는 상관없는 원하지 않는 값들도 함께 삽입되는 현상
    • 삭제 이상 : 릴레이션에 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 현상
    • 갱신 이상 : 릴레이션에서 튜플에 있는 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상

< 정규화 과정 >

  • 제 1정규형 : 다치가 존재하지 않는 릴레이션
  • 제 2정규형 : 부분 함수적 종속성 x (기본키가 기본키가 아닌 속성에 종속 관계를 가짐)
    • R(AB, C, D), A->C 일때 R1(A, C), R2(AB, D)
  • 제 3정규형 : 이행적 종속 관계 x (기본키가 아닌 속성이 다른 속성에 종속 관계를 가짐)
    • R(A,B, C, D), C->D 일때 R1(C, D), R2(AB, D)
  • BCNF : 3 정규형에서 결정자이며 후보키가 아닌것 제거
  • cf) 종속 관계 : ‘학번’에 따라 ‘이름’이 결정될 때 ‘이름’을 ‘학번’에 함수 종속적이라 하며 ‘학번->이름’으로 표기한다.

데이터베이스 언어

  • DDL(Data Definition Language)
    • DB 구조, 데이터 형식, 접근 방식 등 DB를 구축하거나 수정할 목적으로 사용되는 언어
    • 외부 스키마 명세를 정의하고 논리적/물리적 데이터 구조 정의
    • CREATE, ALTER, DROP, RENAME 등의 명령어를 사용한다.
      • CREATE SCHEMA/DOMAIN/TABLE/INDEX 이름
      • ALTER TABLE 테이블이름 ADD/ALTER/DROP 속성이름
      • DROP SCHEMA/DOMAIN/TABLE/VIEW [CASCADE/RESCTRICTED]
  • DML(Data Manipulation Language)
    • 사용자가 데이터를 처리할 수 있게하는 도구로 사용자와 DBMS간의 인터페이스를 제공한다.
    • SELECT, INSERT, DELETE, UPDATE 등의 명령어를 사용한다.
    • SELCT ~ FROM ~ WHERE ~ GROUP BY ~ HAVING ~
    • INSERT ~ INTO ~ VALUES ~
    • DELETE ~ FROM ~ WHERE ~
    • UPDATE ~ SET ~ WHERE ~
  • DCL(Data Control Language)
    • 무결성, 보안 및 권한 제어, 회복 등을 하기 위한 언어다.
    • GRANT(권한 생성), REVOKE(권한 삭제)

뷰(VIEW)

  • 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 유도된 가상 테이블이다.
  • 물리적으로 저장장치에 존재하지 않지만 있는 것처럼 간주한다.
  • 기본 테이블과 같은 구조를 가지며 조작도 기본 테이블과 거의 같다.
  • 정의된 뷰는 다른 뷰의 정의에 기초가 될 수 있다.
  • 뷰가 정의된 기본 테이블이나 뷰를 삭제하면 그 테이블을 기초로 정의된 다른 뷰도 삭제된다.

  • 장점 : 접근 제어를 통한 자동 보안과 사용자 데이터를 간단하게 해준다.
  • 단점 : ALTER VIEW로 정의를 변경할 수 없다. 삽입/삭제/갱신 연산에 제약이 따른다.

시스템 카탈로그 (=데이터 사전)

  • 시스템 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스이다.
  • 데이터 객체에 대한 정의나 명세에 관한 정보를 유지/관리하는 시스템 테이블이다.
  • 데이터 정의어의 결과로 구성되는 기본 테이블, 뷰, 인덱스, 접근 권한 등의 데이터베이스 구조 및 통계 정보를 저장한다.
  • 카탈로그는 DBMS가 스스로 생성하고 유지한다.
  • 시스템 테이블로 구성되어 있어 일반 이용자도 SQL을 이용하여 내용을 검색할 수 있다.
  • INSERT/DELETE/UPDATE 문으로 카탈로그를 갱신하는 것은 허용되지 않는다.


반응형