정보보안

DB | 데이터베이스

나인레빗 2017. 1. 23. 23:39

데이터베이스

DB | Database


자료 검색과 갱신의 효율성을 높이기 위해 서로 관련성을 가지면서 자료의 중복이 없는 구조화된 데이터의 집합을 유지하는 것을 데이터베이스라고 한다.


• Data = 자료, 정보, 파일

• Database = 자료의 모임 = 구조적으로 데이터를 저장하는 공간


DBMS (Database Management System)


데이터베이스를 관리하기 위한 시스템을 말한다. 데이터 처리에 있어 무결성과 보안성을 제공하며 종류로는 MySQL · MSSQL · Oracle · MariaDB · DB2 · SQLite · Cubrid 등이 있다.


1. Table (=Relation)

데이터를 목적에 맞게 구조적으로 묶어놓은 영역으로 테이블의 이름은 고유해야 한다.


2. Columns (=Fields=Attribute=열)

테이블에서 사용되는 열을 의미한다.


3. Rows (=Record=Tuple=행)

테이블에서 한 객체의 대한 전체 정보를 의미한다. 특정 대상의 데이터 -즉, 도서관에서 책 한 권- 라고 볼 수 있다.


4. Field

Column 과 동일한 의미로 사용되며, 단일 값을 지칭하는 용어로도 사용된다.


키의 종류


1. 슈퍼키

  - 중복이 없어야 한다. ☞ 유일성

  - 하나의 릴레이션에서 키로 지정된 속성의 값은 튜플마다 달라야 한다.


2. 후보키

  - 유일성과 최소성을 만족하는 속성들의 집합으로 슈퍼키의 한 종류이다.


3. 기본키

  - 여러 후보키 중에서 기본적으로 사용할 키를 말한다.

  - 후보키가 여러개일 경우 기본키로 선택할 때 고려 사항으로는 다음과 같다.

• NULL 값을 가질 수 있는 속성이 포함된 후보키는 기본키로 부적합

• 값이 자주 변경될 수 있는 속성이 포함된 후보키는 기본키로 부적합

• 단순한 후보키를 기본키로 선택


4. 대체키

  - 후보키 중에서 기본키로 선택되지 않은 나머지 키들을 의미한다.


5. 외래키

  - 다른 테이블에 대한 기본키를 식별값으로 사용하는 키를 의미한다.

  - 릴레이션들 사이의 관계를 올바르게 표현하기 위해 사용한다.


관계 데이터 모델의 제약


1. 개체 무결성 제약 조건

  - 기본키를 구성하는 모든 속성은 NULL 값을 가지면 안된다.

  - 기본키를 구성하는 속성 전체나 일부가  NULL 값이 될 경우 튜플의 유일성을 판단할 수 없어 기본키의 본래 목적을 상실한다.


2. 참조 무결성 제약조건

  - 외래키는 참조할 수 없는 값을 가질 수 없다.

  - 외래키는 다른 릴레이션의 기본키를 참조하는 속성이며 릴레이션 간의 관계를 표현한다.

  - 자신이 참조하는 릴레이션의 기본키와 상관이 없는 값을 가지게 되면 두 릴레이션을 연관시킬 수 없으므로 외래키 본래의 의미가 상실한다. 따라서 자신이 참조하는 릴레이션에 기본키 값으로 존재하는 값, 즉 참조 가능한 값만 가져야 한다.

  - NULL 이거나 부모 테이블에 존재하는 값이어야 한다.


데이터베이스 설계


1. 요구사항 분석

  - 데이터베이스를 사용하는 용도를 파악하고, 이를 분석한 결과를 요구사항 명세서로 작성한다.


2. 개념적 설계

  - 요구사항을 좀 더 정형화하거나 데이터 요소 간의 관계를 표현할 때 사용한다.

  - 일반적으로 E-R 모델을 많이 사용하며, 데이터 요소 간의 관계를 E-R 다이어그램으로 표현한다.

  - 요구사항 명세서 → ERD (Entity-Relationship Diagram)


3. 논리적 설계

  - 개념적 설계 단계에서 생성한 E-R 다이어그램을 릴레이션(테이블) 스키마로 변환하여 DBMS가 처리할 수 있도록 하는 것이 논리적 설계 단계이다.

  - ERD → 관계형 데이터 모델


4. 물리적 설계

  - 논리적 설계 단계에서 생성된 논리적 구조를 기반으로 저장 장치에 적합한 저장 레코드와 인덱스의 구조 등을 설계, 저장된 데이터와 인덱스에 빠르게 접근할 수 있는 탐색 기법 등을 정의한다.

  - 물리적 설계의 결과물인 물리적 구조를 내부 스키마 또는 물리적 스키마라고 한다.

  - 관계형 데이터 모델 → SQL


5. 구현

  - DBMS에서 SQL로 작성한 명령문을 실행하여 데이터베이스를 실제로 생성한다.