글
DB | 데이터베이스
데이터베이스
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로 작성한 명령문을 실행하여 데이터베이스를 실제로 생성한다.
'정보보안' 카테고리의 다른 글
정보 보안의 3대 요소 (0) | 2016.11.07 |
---|---|
IOS, Routing 설정 (0) | 2016.11.04 |
Network Topology Design (0) | 2016.11.01 |
Layer 4 Transport (0) | 2016.11.01 |
Layer 3 Internet (3 / 3) (0) | 2016.10.28 |