4 분 소요

데이터베이스 (DBMS, DataBase Management System)

  • 특정 조직 내 필요한 데이터들의 모임, 공용으로 소유/유지/이용하는 공용 데이터

1. 데이터베이스 개념

정의

  1. 공유 데이터: 여러 사용자 함께 소유 / 이용
  2. 통합 데이터: 최소의 중복과 통제 가능 허용
  3. 저장 데이터: 컴퓨터 매체에 저장된 데이터
  4. 운영 데이터: 주요 기능 수행목적 지속적 데이터

특징

  1. 실시간 접근: 사용자의 데이터 요구 실시간 응답
  2. 계속 변화: 상태반영(데이터 삽입, 삭제, 수정)
  3. 동시 공유: 데이터 동시에 이용/공유
  4. 내용 기반 참조: 내용(값)으로 참조 가능

형태

  1. 정형: 미리 정해진 구조
  2. 반정형: 내용 안에 구조에 대한 설명
  3. 비정형: 정해진 구조가 없음

특성

범주형 데이터: 종류를 나타내는 값

  1. 명목형 데이터
  2. 순서형 데이터

수치형 데이터: 크기 비교와 연산 가능

  1. 이산형 데이터
  2. 연속형 데이터

2. 스키마 (Schema)

스키마 종류 내용
외부 스키마 - 사용자 관점의 스키마 -> 하나의 DB에 여러개의 외부 스키마 존재
- 사용자, 프로그램마다 다양한 형태의 논리적 구조로 존재
개념 스키마 - 사용자와 DB 관리자 관점의 스키마 / DB의 전체적인 논리적 구조
- 일반적으로 하나의 DB에는 하나의 개념 스키마가 존재
-> 데이터 개체/관계/제약조건/접근권한/무결성 규칙 명세
내부 스키마 - DB 설계자/개발자 관점의 스키마
- 개념 스키마를 물리적 저장장치에 구현하는 방법을 정의
-> 물리적 구조 / 내부 레코드의 물리적 순서

3. 데이터 독립성

논리적 독립성

응용 프로그램 영향없이 데이터베이스 논리 구조 변경

물리적 독립성

응용 프로그램 및 논리 구조 영향없이 데이터의 물리적 구조 변경

4. 데이터 언어

데이터 언어 종류 내용
DDL (Data Definition Language) 데이터베이스 구조 / 제약 조건 정의
DML (Data Manipulation Language) 데이터 처리 / 조직에 사용되는 언어
DCL (Data Control Language) 데이터의 보안, 권한, 무결성, 권한 검사, 병행 제어를 위한 언어

5. 데이터베이스 설계 순서

순서(아래순) 내용
요구조건 분석 데이터베이스의 사용 용도 / 요구사항 / 요구 조건 명세서 사용
개념적 모델 - 현실 세계의 인식을 추상적 개념 세계로 표현
- 독립적인 개념 스키마 모델링 / 트랜잭션 모델링 / E-R 모델
논리적 모델 - 개념적 모델을 컴퓨터가 처리할 수 있는 구조로 표현(관계 모델)
- 종속적인 논리 스키마 설계 / 트랜잭션 인터페이스 설계 / 정규화
- 논리적 데이터 베이스 구조로 Mapping / 스키마의 평가 및 정제
물리적 모델 - 데이터의 실제 저장 방법 및 접근 경로 표현 (레코드 형식 / 순서)
- 목표 DBMS 종속적인 물리적 구조 데이터로 변환 / 반정규화
- 오브젝트, 접근방법, 인덱스, 뷰 용량 설계 / 트랜잭션 작성
-> 저장 레코드의 형식 / 순서 / 접근 경로 설계
구현 DBMS에서 SQL로 작성한 명령문 실행 후 데이터베이스 실제 생성

데이터 모델링

현실 내 복잡한 데이터 구조를 단순 / 추상화하여 체계적으로 표현

6. 데이터 모델 구성 요소

구조 (Structure)

논리적 개체 간 관계, 데이터 구조, 정적 성질 표현

연산 (Operation)

실제 데이터를 처리하는 작업 명세로 데이터베이스 조작 도구

제약 조건 (Constraint)

DB에 저장될 수 있는 실제 데이터의 논리적 제약 조건

7. 개체-관계 모델 (E-R Model / Entity-Relation Model)

종류 내용
개체 (Entity) 독립적이고 구별 가능한 모든 것
- 개체 타입: 개체를 구성하는 속성들의 집합
- 개체 인스턴스: 실제 값을 가지면서 실체화된 개체
- 개체 세트: 개체 인스턴스들의 집합
속성 (Attribute) 개체가 가진 고유의 특성 / 가장 작은 논리적 단위 (원)
관계 (Relationship) 두 개체 간의 의미 있는 연관성 및 연결 구조 (마름모)
-> 일대일 (1:1) / 일대다 (1:N) / 다대다 (N:M)

8. E-R 다이어그램 표기법

db_1

9. 관계형 데이터베이스 용어

  • 릴레이션(Relation)이라는 표(Table)로 표현
  • 속성(Attribute) = 열 = 필드 / 튜플(Tuple) = 행 = 레코드
  • 차수(Degree): 속성의 개수 / 기수(Cardinality): 튜플의 개수
  • 도메인(Domain): 하나의 속성에서 취할 수 있는 원자 값들의 집합 (ex. 성별: 남/여)

릴레이션 인스턴스: 릴레이션에 실제로 저장된 데이터 집합

릴레이션 특징

  • 튜플과 속성은 유일하며 순서는 무의미
  • 튜플은 삽입 / 삭제 등에 의해 계속 변함 / 튜플은 서로 상이한 값을 가짐
  • 속성의 값은 분해 불가 (원자성) / 동일할 수 있음
  • 튜플을 식별하기 위해 속성(필드)의 일부를 Key 로 설정
  • 속성은 Null 값을 가질 수 있으나, 기본키에 해당되는 속성은 Null 값을 가질 수 없음

10. 키 (Key)

키 종류 내용
후보키 (Candidate Key) - 기본키로 사용 가능한 속성 / 모든 릴레이션에는 후보키 존재
- 모든 튜플에 대해 유일성 / 최소성 만족
유일성: 하나의 키 값으로 하나의 튜플 유일하게 식별
최소성: 모든 레코드 식별하는데 최소한 속성으로만 구성
기본키 (Primary Key) - 후보키 중에서 선택되어, 중복된 값과 NULL 값 가질 수 없음
- 유일성 / 최소성 만족하며 튜플 식별하기 위해 반드시 필요한 키
대체키 (Alternate Key) - 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키
슈퍼키 (Super Key) - 한 릴레이션 내 속성들의 집합으로 구성된 키
- 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족 불가
외래키 (Foreign Key) - 다른 릴레이션의 기보키를 참조하는 속성 or 속성들의 집합
- 참조되는 릴레이션 기본키와 대응되어 릴레이션 간 참조 관계

11. 무결성 (Intergrity)

종류 내용
개체 무결성 - 기본키를 구성하는 어떤 속성도 NULL/중복 값 가질 수 없음
- 기본키의 속성 값이 NULL값이 아닌 원자 값을 갖는 성질
도메인 / 속성 무결성 - 릴레이션 내 튜플들이 각 속성의 도메인에 지정된 값만 가짐
- 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없음
참조 무결성 - 외래키는 NULL 또는 참조 릴레이션의 기본키 값과 동일
- 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없음
사용자 정의 무결성 - 속성 값들의 사용자가 정의한 제약 조건에 만족
데이터 무결성 강화 - 데이터 특성에 맞는 적절한 무결성을 정의하고 강화
- 강화 방법 : 제약조건, 어플리케이션, 데이터베이스 트리거

12. 접근 통제 기술 (AC, Access Control)

종류 내용
임의 접근 통제
(DAC)
- 사용자의 신원/신분에 따라 접근 권한 부여
- 데이터 소유자가 접근 통제 권한 지정/제어
- 객체 생성자가 모든 권한 갖고, 다른 사용자에게 허가
- SQL 명령어: GRANT / REVOKE
강제 접근 통제
(MAC)
- 주체와 객체의 등급을 비교 후 시스템이 접근 권한 부여
- DB 객체 별로 보안 등급 부여 및 사용자별로 인가 등급 부여
- 자신보다 보안 높은 객체에 읽기 / 수정 / 등록 불가하나 등급 같은 객체에서는 모두 가능, 자신보다 낮은 객체에는 읽기 가능
역할 기반 접근 통제 (RBAC) - 사용자의 역할에 따라 접근 권한 부여(중앙관리자가 지정)
- 다중 프로그래밍에 최적화

13. 뷰 (View)

  • 기본 테이블에 기반을 둔 이름을 가지는 가상 테이블 (기본 테이블과 동일 형태)
  • 저장 장치 내 가상으로, 논리적으로 존재 (실존하는 물리적 존재 X)
  • 기본 테이블 및 뷰 삭제 시 해당 테이블 / 뷰를 기초로 정의된 다른 뷰도 자동 삭제

    장점

    논리적 데이터 독립성 제공 / 데이터 자동 보안 제공 / 데이터 관리 용이

    단점

    독립적 인덱스 보유 불가 / ALTER 변경 불가 / 삽입, 삭제, 갱신, 연산 제약

댓글남기기