데이터베이스 개요
데이터베이스 (Database) – 여러 사람에 의해 공동으로 사용될 데이터를 중복을 배제하여 통합하고, 쉽게 접근하여 처리할 수 있도록 저장장치에 저장하여 항상 사용할 수 있도록 운영하는 운영 데이터
- 통합된 데이터 (Integrated Data)
- 저장된 데이터 (Stored Data)
- 운영 데이터 (Operational Data)
- 공용 데이터 (Shared Data)
DBMS (Database Management System, 데이터베이스 관리 시스템)
- 사용자의 요구에 따라 정보를 생성해주고, 데이터베이스를 관리해주는 소프트웨어
- 필수 3기능
- 정의(Definition) 기능
- 조작(Manipulation) 기능
- 제어(Control) 기능
데이터 모델 구성 3요소
- 연산 – 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세로 데이터베이스를 조작하는 도구
- 구조 – 논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질을 표현한다.
- 제약조건 – 데이터베이스에 저장될 수 있는 실제 데이터의
데이터베이스 스키마(Schema) – 데이터베이스의 전체적인 구조와 제약조건에 대한 명세를 기술하고 정의한 것
- 스키마는 데이터 사전(Data Dictionary)에 저장
- 데이터 사전 : 데이터 항목들에 대한 정보를 지정한 중앙 저장소 (테이블 및 뷰들의 집합)
- 스키마는 특정 데이터 모델을 이용해서 만들어진다.
- 스키마는 시간에 따라 불변인 특성을 가짐
- 스키마는 데이터의 구조적 특성을 의미하며, 인스턴스에 의해 규정
스키마(Schema) 3계층
- 외부 스키마 ( External Schema )
- 개별 사용자들의 입장에서 데이터 베이스의 논리적 구조를 정의한 것
- 개념 스키마 ( Conceptual Schema )
- 데이터베이스의 전체 조직에 대한 논리적인 구조로, 물리적인 구현은 고려하지 않는다.
- 내부 스키마 ( Internal Schema )
- 물리적인 저장장치의 입장에서 본 데이터베이스 구조
데이터 독립성
- 논리적 독립성 – 개념 스키마가 변경 되어도 외부 스키마에 영향을 주지 않는다.
- 물리적 독립성 – 내부 스키마가 변경 되어도 외부/개념 스키마에 영향을 주지 않는다.
관계대수
- 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 (How) 유도하는가를 기술 하는 절차적인 언어
관계대수 연산자
- 순수 관계 연산자
- SELECT (σ ) – 조건(Predicate)을 만족하는 튜플들의 부분 집합 (수평 연산)
- PROJECT (π ) – 속성들의 부분 집합, 릴레이션에서 수직적 부분집합(속성의 값)을 구하는 연산으로 원하는 속성만 추출하기 위한 연산
- JOIN (▷◁ ) – 두 테이블로부터 조건에 맞는 관련된 튜플들을 하나의 튜플로 결합하여 하나의 테이블로 만드는 연산
- DIVISION (÷ ) – A, B 두 테이블에 대해 ‘A DIVISION B’는 B 테이블의 조건을 만족하는 튜플들을 테이블 A에서 추출하는 연산
- 일반 집합 연산자 – 합집합 ( ∪ ), 교집합 ( ∩ ), 차집합( — ), 카티션 프로덕트( X )
반정규화 – 성능향상과 개발 편의성 등 정규화 기법에 위배되는 수행 기법
정규화
비정규 Relation >>>
- 제1정규형 – 도메인이 원자값
- 제2정규형 – 부분 함수적 종속 제거
- 제3정규형 – 이행적 함수 종속 제거
- BCNF – 결정자이면서 후보키가 아닌것 제거
- 제4정규형 – 다치 종속 제거
- 제5정규형 – 조인 종속성 이용
함수적 종속
- 완전 함수 종속 (Full)
- 부부적 함수 종속 (Partial)
- 이행적 함수 종속 (Transitive)
이상현상 ( Anomaly, 정규화 하지않으면? 이상현상이 발생 )
- 삽입 이상 – 불필요한 데이터까지 삽입되는 현상
- 삭제 이상 – 연쇄 삭제
- 갱신 이상 – 정보 모순
트랜잭션(Transaction) 특성 (ACID)
- 원자성 (Atomicity) – 트랜잭션의 가장 기본적인 특성으로 트랜잭션 내의 연산은 반드시 모두 수행되거야 하며 그렇지 못한 경우 모두 수행되지 않아야 함
- 일관성 (Consistency) – 트랜잭션이 정상적으로 완료된 후 언제나 일관성 있는 데이터베이스 상태가 되어야 하며, 결과에 모순이 생겨서는 안 됨
- 격리성, 독립성 (Isolation) – 하나의 트랜잭션이 수행 중에는 다른 트랜잭션이 접근할 수 없고 각각의 트랜잭션은 독립적이어야 함
영속성 (Durability) – 지속성이라고도 하며, 트랜잭션이 성공적으로 완료된 후 결과는 지속적으로 유지되어야 함
Leave a Reply