[Database] Database

박의진·2023년 7월 11일
0

TABA3기

목록 보기
13/16
post-custom-banner

Database

조직의 모든 응용 프로그램이 공유하기위해 통합 저장한 운영 데이터 operational data의 집합이다.

  • 사람들이 찾고자 하는 것들을 추적할 수 있게 도와주는 목적
  • 데이터는 테이블에 저장이 되어있고, 테이블은 행과 열로 구분
  • 데이터베이스의 관계와 데이터를 저장

Naming convention

  • Table names: 모두 대문자로 작성된다.
    • e.g. STUDENTS, CLASS ..
  • Column names: 첫 번째 글자만 대문자로 작성되고 만약 두개의 단어가 쓰이면 두 번째 단어의 첫번째 글자가 대문자로 작성된다.
    • e.g. ClassNumber, Term, StudentName ..

DBMS(Database Management system)

데이터베이스를 관리하는 SW

  • High-end(mainframe): SQL, Oracle

  • Mid-Range: workstation, UNIX server, X86 server

  • Low-end: MySql, Access

Database system

DBMS, Database, 사용자 모두 포함하는 system

Data language

  • Query Language: SQL, QUEL, QBE, XQuery, HiveQuery

User

  • Casual user (end user)

    • Canned application use
    • Interactive SQL use
  • Application programmer

    • ESQL/C, ODBC, JDBC 등 프로그램 개발
  • DBA(Database Administrator)

    • 데이터베이스 관리, 모든 권한
  • Databasee designer

    • ER modeling 수행

Keys

투플을 유일하게 구별하기 위해 모든 속성을 이용하는 것보다 일부 속성만 이용하는 것이 효율성을 높일 수 있다. 릴레이션에 포함된 투플들을 유일하게 구별해주는 역할은 속성 또는 속성들의 집합인 키가 담당한다.

  • 후보키 (candidaye key): 유일성과 최소성을 만족하는 속성 또는 속성의 집합

  • 기본키 (primary key): 후보키 중 기본적으로 사용할 키

  • 슈퍼키(super key): 유일성의 특성을 만족하는 속성 또는 속성들의 집합

  • 외래키(foreign key): 어떤 릴레이션에 소속된 속성 또는 속성 집합이 다른 릴레이션의 기본키

  • 대체키(alternate key): 기본키로 선택되지 못한 후보키

Database Normalization

정규화(Normalization)의 기본 목표는 테이블 간에 중복된 데이타를 허용하지 않는다는 것이다. 중복된 데이터를 허용하지 않음으로써 무결성(Integrity)를 유지할 수 있으며, DB의 저장 용량 역시 줄일 수 있다.

  • 1차 정규화: 테이블 컬럼이 하나의 값(원자값)을 갖도록 하는 것

    • 각 컬럼이 하나의 속성만을 가져야 한다.
    • 하나의 컬럼은 같은 종류나 타입(type)의 값을 가져야 한다.
    • 각 컬럼이 유일한(unique) 이름을 가져야 한다.
    • 칼럼의 순서가 상관없어야 한다.
  • 2차 정규화:

    • 1정규형을 만족해야 한다.
    • 모든 컬럼이 부분적 종속(Partial Dependency)이 없어야 한다. == 모든 칼럼이 완전 함수 종속을 만족해야 한다.
      부분적 종속이란 기본키 중에 특정 컬럼에만 종속되는 것이고 완전 함수 종속이란 기본키의 부분집합이 결정자가 되어선 안된다는 것이다.
  • 제3 정규화:

    • 2 정규형을 만족해야 한다.
    • 기본키를 제외한 속성들 간의 이행 종속성 (Transitive Dependency)이 없어야 한다.
      이행 종속성이란 A->B, B->C 일 때 A->C 가 성립하면 이행 종속이라고 한다.
  • BCNF (Boyce-Codd Normal Form): 제3 정규화를 진행한 테이블에 대해 모든 결정자가 후보키가 되도록 테이블을 분해하는 것

    • 3정규형을 만족해야 한다.
    • 모든 결정자가 후보키 집합에 속해야 한다.
  • 4차 정규형:

    • BCNF를 만족해야 한다.
    • 다치 종속(Multi-valued Dependency)이 없어야 한다.
    1. A->B 일 때 하나의 A값에 여러 개의 B값이 존재하면 다치 종속성을 가진다고 하고 A↠B라고 표시한다

    2. 최소 3개의 칼럼이 존재한다.

    3. R(A, B, C)가 있을 때 A와 B 사이에 다치 종속성이 있을 때 B와 C가 독립적이다.

  • 5차 정규형:

    • 4NF를 만족해야 한다.
    • 조인 종속(Join dependency)이 없어야 한다.
    • 조인 연산을 했을 때 손실이 없어야 한다.

Constraints

제약조건이란 데이터의 무결성을 지키기위해 입력받은 데이터에 대한 제한을 두는 것을 의미합니다.

  • NOT NULL: 제약조건을 설정 시, 해당필드는 NULL 값을 저장할 수 없게 하는 제약조건
  • UNIQUE: 제약조건을 설정 시, 중복된 값을 저장할 수 없게 하는 제약조건
  • PRIMARY KEY: 기본키를 지정하는 제약조건으로, 해당 필드는 NOT NULL과 UNIQUE 제약조건의 특성을 모두 가짐
  • FOREIGN KEY: 한 테이블을 다른 테이블과 연결하여 외래키를 지정하는 제약조건으로, 해당 테이블은 다른 테이블에 의존

  • CHECK: 값의 패턴이나 범위를 지정하는 제약조건

  • DEFAULT: 해당 필드의 디폴트값을 설정할 수 있게 해주는 제약조건

Data type

post-custom-banner

0개의 댓글